Применение веб -сервиса стало все более и более обширным. Следующее представляет несколько способов разработки веб -сервиса в системе Java, что эквивалентно записи.
1.Axis2
Axis является следующим компонентом разработки веб -сервисов с открытым исходным кодом Apache. Это казалось относительно рано и зрелым. Здесь мы в основном представляем разработку веб -сервиса Axis+Eclipse. Конечно, вы можете разработать и публиковать веб -сервис без затмения, но будет более удобно использовать Eclipse.
(1) Загрузите Java EE версию Eclipse //www.vevb.com/softs/239903.html#down
(2) Скачать axis2 http://axis.apache.org/axis2/java/core/download.cgi
(3) Загрузите плагин Axis2 Eclipse
Axis2_codegen_wizard
Axis2_service_archiver
http://axis.apache.org/axis2/java/core/tools/index.html
Рекомендуется использовать версию 1.3
(4) Eclipse для установки плагина Axis2
1) Создайте новую папку Axis2 в любом каталоге, создайте новый каталог Eclipse в этой папке и создайте новый каталог плагинов и каталог функций в каталоге Eclipse, такой как: D:/Programoftware/Eclipse-SVN/Axis2/Eclipse;
2) Разируйте загруженный плагин Axis2 и поместите декомпрессированный файл в каталог плагинов недавно созданного Eclipse;
3) Создать новый каталог ссылок в каталоге % ECLIPSE_HOME % и создайте новый файл AXIS2.Link в каталоге Links, с Content: Path = D:/ProgramOntware/Eclipse-SVN/AXIS2;
4) Перезапустите Eclipse и нажмите ・ File-New-Other. Если вы видите мастеров Axis2, это означает, что плагин успешно установлен.
(5) Установите Axis2
Загрузите военное распределение Axis2 и распаковывает его, поместите пакет Axis2.war в %tomcat_home %/webapps, Start tomcat, посетите http: // localhost: порт/axis2 и Axis2 успешно установлен.
(6) Используйте Eclipse, чтобы создать новый веб -проект и создать обычный класс Java, включая хотя бы один метод.
(7) опубликовать веб -сервис
1) Нажмите File-New-Other в Eclipse, Open Axis2-мастере, выберите Axis2 Service Archiver, а затем в следующий раз;
2) Выберите местоположение файла класса, то есть путь хранения файлов класса. Примечание: только выберите каталог классов, не включайте папку пакета, а затем в следующую;
3) Выберите Skip WSDL, а затем затем
4) Перейдите рядом, чтобы выбрать файл Service XML, который будет включен в архив службы, и автоматически проверьте генерацию xml;
5) Служба имена в имени службы, заполнение имени класса в имени класса, включая имя пакета, затем нажмите «Загрузиться», а затем нажмите «Закончить». В настоящее время веб -сервис будет успешно опубликован;
6) Затем перейдите к %tomcat_home %/webapps/axis2/web-inf/services, чтобы увидеть, есть ли дополнительный файл .aar;
7) Посетите http: // localhost: 8085/axis2/services/имя класса? WSDL, чтобы увидеть сгенерированный файл WSDL.
Примечание. Приведенный выше метод должен опубликовать его в пакет Axis2.war. Вы также можете скопировать сгенерированный файл .AAR в ваше фактическое приложение. В то же время вы также можете использовать функцию «Создать веб -сайт Eclipse» для публикации вашего веб -сайта. Выберите Axis2, чтобы сгенерировать ваш сайт, чтобы веб -сайт был развернут в вашем приложении.
2.Apche CXF
CXF Development Webservice также относительно удобен и прост, и его интеграция с весной можно сказать, что очень хорошая. Давайте возьмем пример веб -сервиса разработки CXF.
1) Создайте новый веб -проект в пакетах затмения и импорта.
2) Напишите интерфейс, например:
public String Test (@webparam (name = "value", targetnamespace = "http://service.cxf.zcl.com/", mode = webparam.mode.in) строковое значение);
Примечание. В веб -сервисе, разработанном CXF, параметры методов в интерфейсе должны быть таким образом, в противном случае сервер CXF не будет получать значение параметра, когда клиент вызовет его. Имя: Имя параметра, не пишите его (рекомендуется записать его), TargetNamesPace: пространство имен, должно быть заполнено. По умолчанию - обратный порядок имени пакета, режим: тип параметра, в представленном вводе.
3) написать класс реализации и реализовать метод интерфейса;
4) Интегрируйте с Spring, напишите файл бобов, например: cxf-beans.xml, со следующим содержанием:
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: jaxws = "http://cxf.apache.org/jaxws" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.sprramework.org/schema/beans/spring-beans.s.s.spring-beans.s. http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> <import resource =" classpath: meta-inf/cxf/cxf.xml "/> <import resource =" classpath: meta-inf/cxf/cxf-esteled "/> <import resource =" classpath: meta-inf/cxf/cxf-esteled "/> <import rource =" <import resource = "classpath: meta-inf/cxf/cxf-servlet.xml"/> <jaxws: endpoint id = "hoge" infulor = "com.zcl.cxf.service.voteimpl" address = "/hoal"/> </beans>
Этот файл легче понять, поэтому я не объясню.
5) Настройте CXFServlet
Настройте CXFServlet в файле web.xml и загрузите файл cxf-beans.xml, со следующим содержанием:
<Web-App Xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "id =" webapp_id "version =" 2,5 "> <context-param> <param-name> contextconfiglocation </param-name> <param-value> web-inf/cxf-beans.xml </param-valam> <param-value> web-inf/cxf-beans.xml </param-valam> <param-value> web-inf/cxf-beans.xml </param-vale-par <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>cxf</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <Servlet-Mapping> <Servlet-name> cxf </servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
Разверните проект в промежуточное программное обеспечение, например Tomcat, и вы можете получить доступ к службе веб -сайта.
3. JDK Development Webservice
1) Напишите класс Java следующим образом:
Демонстрация упаковки; Импорт javax.jws.webparam; Импорт javax.jws.webservice; Импорт javax.xml.ws.endpoint; @Webservice public class jdkwebservice {public String dosomething (@webparam (name = "value", targetnamespace = "http: // demo/", mode = webparam.mode.in) строка) {return "просто сделайте это" + value + "!"; } public static void main (string [] args) {endpoint.publish ("http: // localhost: 8080/jdkwsdemo/demo.jdkwebservice", new jdkwebservice ()); }} 2) Запустите класс Java, и вы можете получить доступ к веб -сервису в браузере.
Примечание. Этот метод не очень дружелюбен при разработке веб -инженерии. Мы можем написать класс Сервлета и опубликовать веб -сервис в методе инициализации класса Сервлета, чтобы наш сервер промежуточного программного обеспечения автоматически поможет нам запустить.
3) XFIRE
Существует много фреймворков для разработки веб -сервиса, и каждая структура имеет свои собственные функции. Недавно я использовал Xfire, чтобы практиковать разработку веб -сервиса. Ниже приведен небольшой пример разработки веб -сервиса. Я надеюсь, что это будет полезно для тех, кто начинает.
1. Создайте новый веб-проект Java с именем TestWebservice, добавьте пакеты JAR, связанные с XFIRE, в каталог LIB, классы интерфейса записи и классы реализации
пакет com.lamp.service; Public Interface MessageService {public String getName (String name); } пакет com.lamp.service; Public Interface MessageService {public String getName (String name); } Класс реализации
пакет com.lamp.service.impl; импорт com.lamp.service.messageservice; Открытый класс сообщений serviceImpl реализует сообщения ushesservice {public String getName (string name) {return "hellow" + name + ", добро пожаловать в Webservice World"; }} пакет com.lamp.service.impl; импорт com.lamp.service.messageservice; Открытый класс сообщений serviceImpl реализует сообщения ushesservice {public String getName (string name) {return "hellow" + name + ", добро пожаловать в Webservice World"; }} Создайте новую папку Meta-Inf в каталоге SRC, затем создайте новую папку XFIRE под ним и создайте новые файловые службы конфигурации. XML в каталоге XFIRE
<? xml version = "1.0" Encoding = "utf-8"?> <beans xmlns = "http://xfire.codehaus.org/config/1.0"> <service> <mame> messageService </name> <servicecrass> com.lamp.service.messageservice </serviceclass> <preventationClass> com.lamp.service.impl.messageserviceimpl </reprevationClass> </service> </beans> <? xml version = "1.0" Encoding = "utf-8"?> <Beans xmlns = "http://xfire.codehaus.org/config/1.0" http://xfire.codehaus.org/config/1.0 "> <//xfire.codehaus.org/config/1. <ServiceClass> com.lamp.service.messageservice </serviceClass> <preventationClass> com.lamp.service.impl.messageserviceimpl </reprevationClass> </service> </beans>
Наконец, настройте сервис Xfire в web.xml
<servlet> <servlet-name> xfireservlet </servlet-name> <servlet-class> org.codehaus.xfire.transport.http.xfireconfigurablableservlet </servlet-class> </servlet> <serlet-mapping> <serplet> <servlet-name> xfireservlet </servlet> <servlet> <servlet> <servlet-name> xfireservelt </Servlet> </servlet> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> org.codehaus.xfire.transport.http.xfireconfigurablableerservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> xfireservlet </servlet-name> <rl-pattern>/servlet/xfireservlet/*</url-pattern> </servlet> <Servlet> <Servlet> <Servlet> <Servlet> </Servlet> </Servlet> </servlet> </Servlet> </Servlet> </Servlet> </Servlet> </Servlet> </Servlet> </servlet> </url-pattern> <servlet-name> xfireservlet </servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
После развертывания проекта вы можете увидеть интерфейс удаленного доступа в браузере через http: // localhost: 8080/testwebservice/services и получить wsdl как http: // localhost: 8080/testwebservice/service service? Wsdl
Таким образом, разработка сервера завершена, и теперь разработка клиента запускается
Создайте новый Java Project, а также представьте банки, связанные с XFIRE. Я использую ANT для генерации прокси -объектов на клиенте и создавать новый build.xml под пути проекта, а код
<? xml version = "1.0" Encoding = "utf-8"?> <name = "webservice" basedir = ".". default = "gen-webservice"> <свойство file = "build.properties"> </property> <path id = "project-classpath"> <fileSet dir = "$ {lib.dir}"> <include name = "**/*. Jar"/> </fileSet> </path> <target name = "gen-webservice"> <taskDef name "wsgen> </path> <target =" gen-webservice "> <askdef name" = "wsgen> </path> <target =" gen-webservice " classname = "org.codehaus.xfire.gen.wsgentask" classpathref = "project-classpath"/> <wsgen outputDirectory = "$ {src.dir}" wsdl = "$ {wsdl.dir}" package = "com.lamp.lient" overwrite = "/rue"/"/"/"/arget> <//> </arget> </> <//> </> <//> </> </> </> <//> </> </> </> </> </> <//> </> <//> <//> <//> <//target? <? xml version = "1.0" Encoding = "utf-8"?> <name = "webservice" basedir = ".". default = "gen-webservice"> <свойство file = "build.properties"> </property> <path id = "project-classpath"> <fileSet dir = "$ {lib.dir}"> <include name = "**/*. Jar"/> </fileSet> </path> <target name = "gen-webservice"> <taskDef name "wsgen> </path> <target =" gen-webservice "> <askdef name" = "wsgen> </path> <target =" gen-webservice " classname = "org.codehaus.xfire.gen.wsgentask" classpathref = "project-classpath"/> <wsgen outputDirectory = "$ {src.dir}" wsdl = "$ {wsdl.dir}" package = "com.lamp.lient" overwrite = "/rue"/"/"/"/arget> <//> </arget> </> <//> </> <//> </> </> </> <//> </> </> </> </> </> <//> </> <//> <//> <//> <//target? Введенный файл build.properties также находится в пути проекта
src.dir = $ {basedir}/src lib.dir = f:/webservice/xfire-1.2.6/lib wsdl.dir = http: // localhost: 8080/testwebservice/services/secordservice? WSDL Где Lib.jar хранит для меня путь XFIRE, запустите муравей, чтобы получить прокси -объект
Напишите тестовый класс
пакет com.lamp.test; Импорт com.lamp.ws.client.messageserviceclient; Импорт com.lamp.ws.client.messageserviceporttype; открытый класс testgetName {public static void main (string [] args) {messageServiceClient msg = new MessageServiceClient (); SpeakservicePortType porttype = msg.getMessageServicehtpport (); String result = porttype.getName ("Zhang San"); System.out.println (результат); }} пакет com.lamp.test; Импорт com.lamp.ws.client.messageserviceclient; Импорт com.lamp.ws.client.messageserviceporttype; открытый класс testgetName {public static void main (string [] args) {messageServiceClient msg = new MessageServiceClient (); SpeakservicePortType porttype = msg.getMessageServicehtpport (); String result = porttype.getName ("Zhang San"); System.out.println (результат); }} Занимаясь на консоли, я видел Hellow Zhang San, добро пожаловать в Webservice World, и была завершена простая разработка веб -сервисов.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.