700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > cxf webservice 完整例子

cxf webservice 完整例子

时间:2022-12-25 13:50:07

相关推荐

cxf webservice 完整例子

在开发java webservice时,有两个比较流行的框架:axis2和cxf。cxf可以无缝的和spring集成,而axis2需要打包成aar文件,在tomcat下面跑。于是我们选择了cxf开发webservice。

下面一步步的介绍用cxf开发服务端和客户端的例子。

首先开发服务端:

一:在pom.xml文件中加入依赖:

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-api</artifactId>

<version>2.5.0</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-frontend-jaxws</artifactId>

<version>2.5.0</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-bindings-soap</artifactId>

<version>2.5.0</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-transports-http</artifactId>

<version>2.5.0</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-ws-security</artifactId>

<version>2.5.0</version>

</dependency>

然后会在maven dependencies文件夹中看到引用的jar包

二:开发服务的接口类和实现类

首先接口类:

package com.mycompany.webservice.server;

import javax.jws.WebService;

@WebService

public interface Greeting {

public String greeting(String userName);

}

然后实现类:

package com.mycompany.webservice.server;

import java.util.Calendar;

import javax.jws.WebService;

@WebService(endpointInterface = "com.mycompany.webservice.server.Greeting")

public class GreetingServiceImpl implements Greeting {

public String greeting(String userName) {

return "Hello " + userName + ", currentTime is "

+ Calendar.getInstance().getTime();

}

}

服务端的代码开发就到此了。下面要配置文件。

在application.xml中:

添加

<!--=============== 实现类的bean,需要spring注入 ============================-->

<bean/>

<jaxws:endpointimplementor="#greetingServiceImpl"address="/Greeting" />

在web.xml中:

添加

<servlet>

<servlet-name>CXFServlet</servlet-name>

<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>CXFServlet</servlet-name>

<!--==这个设置很重要,那么我们的webservice的地址就是http://localhost:8080/yourProgramName/webservice/Greeting===-->

<url-pattern>/webservice/*</url-pattern>

</servlet-mapping>

好了。到此我们的服务端就开发好了。。

就可以通过http://localhost:8080/yourProgramName/webservice/Greeting?wsdl访问看到我们的wsdl了。

下面开发我们的客户端,来调用上面的服务。

package com.mycompany.webservice.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class GreetingServiceClient {

public static void main(String[] args) {

//创建WebService客户端代理工厂

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();

//注册WebService接口

factory.setServiceClass(Greeting.class);

//设置WebService地址

factory.setAddress("http://localhost:8080/yourProgramName/webservice/Greeting");

Greeting greetingService = (Greeting)factory.create();

System.out.println("invoke webservice...");

System.out.println("message context is:"+greetingService.greeting("gary"));

}

}

好了客户端也开发完成。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。