웹 서비스의 적용은 점점 더 광범위해졌습니다. 다음은 Java 시스템에서 웹 서비스를 개발하는 몇 가지 방법을 소개합니다.
1.axis2
Axis는 Apache의 다음 오픈 소스 웹 서비스 개발 구성 요소입니다. 비교적 조기에 성숙해 보였다. 여기서 우리는 주로 Axis+Eclipse Webservice의 개발을 소개합니다. 물론 일식없이 Webservice를 개발하고 게시 할 수 있지만 Eclipse를 사용하는 것이 더 편리합니다.
(1) eclipse //www.vevb.com/softs/239903.html#down의 Java EE 버전을 다운로드하십시오
(2) Axis2 다운로드 http://axis.apache.org/axis2/java/core/download.cgi
(3) Eclipse의 Axis2 플러그인을 다운로드하십시오
axis2_codegen_wizard
axis2_service_archiver
http://axis.apache.org/axis2/java/core/tools/index.html
버전 1.3을 사용하는 것이 좋습니다
(4) Axis2 플러그인을 설치하는 Eclipse
1) 모든 디렉토리에서 새 Axis2 폴더를 만들고이 폴더 아래에 새 Eclipse 디렉토리를 만들고 새 플러그인 디렉토리를 작성하고 다음과 같은 Eclipse 디렉토리의 디렉토리를 작성하십시오.
2) 다운로드 된 AXIS2 플러그인을 압축하고 새로 생성 된 Eclipse의 플러그인 디렉토리에 감압 된 파일을 배치하십시오.
3) % eclipse_home % 디렉토리 아래에서 새 링크 디렉토리를 만들고 링크 디렉토리에서 링크 디렉토리에 새 axis2.link 파일을 만듭니다 : path = d :/programsoftware/eclipse-svn/axis2;
4) Eclipse를 다시 시작하고 파일 New-Other를 클릭하십시오. Axis2 Wizards가 표시되면 플러그인이 성공적으로 설치되어 있음을 의미합니다.
(5) Axis2를 설치하십시오
axis2의 전쟁 분포를 다운로드하고 압축을 풀고, axis2.war 패키지를 %tomcat_home %/webapps 아래에 놓고, tomcat을 시작하고, http : // localhost : port/axis2를 방문하고 axis2를 성공적으로 설치합니다.
(6) Eclipse를 사용하여 새로운 웹 프로젝트를 만들고 하나 이상의 방법을 포함하여 일반적인 Java 클래스를 만듭니다.
(7) 웹 서비스를 게시하십시오
1) Eclipse에서 File-New-Other를 클릭하고 Axis2 Wizards를 열고 Axis2 Service Archiver를 선택한 다음 다음을 선택하십시오.
2) 클래스 파일 위치, 즉 클래스 파일 스토리지 경로를 선택하십시오. 참고 : 클래스 디렉토리 만 선택하고 패키지 폴더를 포함하지 않은 다음 다음에 포함하십시오.
3) WSDL 건너 뛰기를 선택한 다음 다음으로 선택하십시오
4) 옆으로 이동하여 서비스 아카이브에 포함될 서비스 XML 파일을 선택하고 theservice XML 생성을 자동으로 확인하십시오.
5) 서비스 이름의 서비스 이름 필기, 패키지 이름을 포함하여 클래스 이름의 클래스 이름 필기를 한 다음로드를 클릭 한 다음 완료를 클릭하십시오. 현재 웹 서비스는 성공적으로 게시 될 것입니다.
6) 그런 다음 %tomcat_home %/webapps/axis2/web-inf/services로 이동하여 추가 .AAR 파일이 있는지 확인하십시오.
7) 생성 된 WSDL 파일을 보려면 http : // localhost : 8085/axis2/services/class name? wsdl을 방문하십시오.
참고 : 위의 방법은 axis2.war 패키지에 게시하는 것입니다. 생성 된 .AAR 파일을 실제 응용 프로그램에 복사 할 수도 있습니다. 동시에 Eclipse의 웹 사이트 만들기 기능을 사용하여 웹 사이트를 게시 할 수도 있습니다. 웹 사이트가 응용 프로그램에 배포되도록 웹 사이트를 생성하려면 Axis2를 선택하십시오.
2. APCHE CXF
CXF 개발 웹 서비스는 또한 비교적 편리하고 간단하며 Spring과의 통합은 매우 좋다고 말할 수 있습니다. CXF 개발 웹 서비스의 예를 들어 보겠습니다.
1) Eclipse 및 가져 오기 의존성 패키지에서 새로운 웹 프로젝트를 만듭니다.
2) 다음과 같은 인터페이스를 작성하십시오.
공개 문자열 테스트 (@webparam (이름 = "value", targetnamespace = "http://service.cxf.zcl.com/", mode = webparam.mode.in) 문자열 값);
참고 : CXF가 개발 한 웹 서비스에서 인터페이스의 메소드 매개 변수는 이러한 방식으로이어야합니다. 그렇지 않으면 CXF 서버는 클라이언트가 호출 할 때 매개 변수 값을받지 않습니다. 이름 : 매개 변수 이름, 쓰지 말고 (쓰기 위해 권장), TargetNamespace : Namespace를 작성해야합니다. 기본값은 패키지 이름, 모드 : 매개 변수 유형의 역 순서입니다. 입력을 나타냅니다.
3) 구현 클래스를 작성하고 인터페이스 방법을 구현하십시오.
4) Spring과 통합, 다음과 같은 CXF-BEANS.XML과 같은 Bean 파일을 작성하십시오.
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : jaxws = "http://cxf.apache.org/jaxws"xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spride-beans/spronans http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> import resource ="classpath : meta-inf/cxf/cxf.xml "/> <classpath : meta-inf/cxf/cxf-exf-extsension-sop.xml resource = "classpath : meta-inf/cxf/cxf-servlet.xml"/> <jaxws : endpoint id = "vote"excertor = "com.zcl.cxf.service.voteimpl"jesser = "/vote"/> </beans>
이 파일은 이해하기 쉽기 때문에 설명하지 않습니다.
5) CXFSERVLET를 구성하십시오
Web.xml 파일에서 CXFSERVLET를 구성하고 다음 내용으로 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-value> <Leater> <Leater-Class> org.springframework.web.context.contextloaderListener </Learger-Class> </Learger> <servlet> <servlet-name> cxf </servlet-name> <servlet-class> org.apache.cxf.transport.servlet.cxfservers </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 개발 웹 서비스
1) Java 클래스를 다음과 같이 작성하십시오.
패키지 데모; import javax.jws.webparam; import javax.jws.webservice; import 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 클래스를 실행하면 브라우저의 웹 서비스에 액세스 할 수 있습니다.
참고 :이 방법은 웹 엔지니어링을 개발할 때 매우 친절하지 않습니다. Servlet 클래스를 작성하고 Servlet 클래스의 초기화 방법에 웹 서비스를 게시하여 미들웨어 서버가 자동으로 시작하는 데 도움이됩니다.
3) xfire
웹 서비스를 개발하기위한 많은 프레임 워크가 있으며 각 프레임 워크에는 고유 한 기능이 있습니다. 최근에 나는 Xfire를 사용하여 웹 서비스 개발을 연습했습니다. 아래는 웹 서비스를 개발하는 작은 예입니다. 시작하는 사람들에게 도움이되기를 바랍니다.
1. Testwebservice라는 새로운 Java 웹 프로젝트 만들기, LIB 디렉토리에 XFIRE 관련 JAR 패키지 추가, 인터페이스 클래스 작성 및 구현 클래스 작성
패키지 com.lamp.service; 공개 인터페이스 MessageService {public String getName (문자열 이름); } 패키지 com.lamp.service; 공개 인터페이스 MessageService {public String getName (문자열 이름); } 구현 클래스
패키지 com.lamp.service.impl; com.lamp.service.messageservice import; 공개 클래스 MessagesViceImpl은 MessageService {public String getName (문자열 이름) {return "Hellow" + Name + ", Webservice World에 오신 것을 환영합니다."; }} 패키지 com.lamp.service.impl; com.lamp.service.messageservice import; 공개 클래스 MessagesViceImpl은 MessageService {public String getName (문자열 이름) {return "Hellow" + Name + ", Webservice World에 오신 것을 환영합니다."; }} SRC 디렉토리에서 새 폴더 메타 -inf를 만들고 그 아래에 새 폴더 XFIRE를 만들고 XFIRE 디렉토리에서 새 구성 파일 Services.xml을 만듭니다.
<? xml version = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://xfire.codehaus.org/config/1.0"> <service> <name> messageservice </name> <werviceclass> com.lamp.service.messageservice </servececlass> <usedationclass> com.lamp.service.impl.messageServiceimpl </ublemationationClass> </service> </beans> <? XML 버전 = "1.0"encoding = "utf-8"?> <beans xmlns = "http://xfire.codehaus.org/config/1.0"> <service> <service> resservice </emplice <ServiceClass> com.lamp.service.messagesErvice </serviceClass> <eductionationClass> com.lamp.service.impl.messagesErviceImpl </ublementationClass> </service> </beans>
마지막으로 web.xml에서 xfire의 서블릿을 구성하십시오
<Servlet> <servlet-name> xfireservlet </servlet-name> <servlet-class> org.codehaus.xfire.transport.http.xfireconfigurableservlet </servlet-class> </servlet> <servlet-mapping> <servlet-mapping> servlet-name> xfireservlet </servlet-name> <Url-pattern>/servlet/xfireservlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name> xfireservlet </servlet-name> <Url-pattern>/services/*</url-pattern> </servlet-mapping> <Servlet-name> xfireservlet> xfireservlet> org.codehaus.xfire.transport.http.xfireconfigurableservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> xfireservlet </servlet-name> <url-pattern>/servlet/xfireservlet/*</servlep-mapping> </servlet-mapping> <Servlet-name> XFIRESERVLET </servlet-name> <Url-pattern>/services/*</url-pattern> </servlet-mapping>
프로젝트가 배포 된 후에는 http : // localhost : 8080/testwebservice/services를 통해 브라우저의 원격 액세스 인터페이스를 볼 수 있으며 http : // localhost : 8080/testwebservice/services/messageservice?
이런 식으로 서버 개발이 완료되고 이제 클라이언트 개발이 시작되었습니다.
새로운 Java 프로젝트를 만들고 Xfire 관련 항아리를 소개하십시오. ANT를 사용하여 클라이언트에서 프록시 객체를 생성하고 프로젝트 경로에서 새 build.xml을 생성하면 코드는 다음과 같습니다.
<? xml version = "1.0"encoding = "utf-8"?> <project name = "webservice"basedir = ". default = "gen-webservice"> <property file = "build.properties"> </propert> <path id = "project-classpath"> <fileset dir = "$ {lib.dir}"> <포함 이름 = "**/*. className = "org.codehaus.xfire.gen.wsgentask"classPathRef = "project-classpath"/> <wsgen outputDirectory = "$ {src.dir}"wsdl = "$ {wsdl.dir}"com.lamp.ws.client "overwrite ="true "/>>>>>>>>>>>>>>/>> </targe" <? xml version = "1.0"encoding = "utf-8"?> <project name = "webservice"basedir = ". default = "gen-webservice"> <property file = "build.properties"> </propert> <path id = "project-classpath"> <fileset dir = "$ {lib.dir}"> <포함 이름 = "**/*. className = "org.codehaus.xfire.gen.wsgentask"classPathRef = "project-classpath"/> <wsgen outputDirectory = "$ {src.dir}"wsdl = "$ {wsdl.dir}"com.lamp.ws.client "overwrite ="true "/>>>>>>>>>>>>>>/>> </targe" 도입 된 build.properties 파일도 프로젝트 경로에 있습니다.
src.dir = $ {basedir}/src lib.dir = f : /webservice/xfire-1.2.6/lib wsdl.dir = http : // localhost : 8080/testwebservice/services/messageservice? wsdl Lib.jar가 나를 위해 xfire의 경로를 저장하는 곳, 대리 대상을 얻기 위해 Ant를 실행하십시오.
테스트 클래스를 작성하십시오
패키지 com.lamp.test; com.lamp.ws.client.messageserviceclient import; import com.lamp.ws.client.messageserViceportType; public class testgetname {public static void main (string [] args) {messageserviceclient msg = new MessageServiceClient (); messageserviceportType portType = msg.getMessagesErgiceHttpport (); 문자열 result = porttype.getName ( "Zhang San"); System.out.println (결과); }} 패키지 com.lamp.test; com.lamp.ws.client.messageserviceclient import; import com.lamp.ws.client.messageserViceportType; public class testgetname {public static void main (string [] args) {messageserviceclient msg = new MessageServiceClient (); messageserviceportType portType = msg.getMessagesErgiceHttpport (); 문자열 result = porttype.getName ( "Zhang San"); System.out.println (결과); }} 콘솔에서 실행하면서 Hellow Zhang San, Webservice World에 오신 것을 환영하며 간단한 웹 서비스 개발이 완료되었습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.