下载cxf包,把他里面的包都添加进lib文件夹中。

创建一个接口。添加@WebService注解

@WebService
public interface HelloWorld { String sayHi(@WebParam(name="text")String text);
String sayHiToUser(User user);
String[] SayHiToUserList(List<User> userList);
}

创建接口的实现类,也添加@WebService注解,给他一个名称:boy

@WebService(serviceName="boy")
public class HelloWorldImpl implements HelloWorld { Map<Integer, User> users = new LinkedHashMap<Integer, User>(); public String sayHi(String text) {
return "Hello " + text;
} public String sayHiToUser(User user) {
users.put(users.size() + 1, user);
return "Hello " + user.getName();
} public String[] SayHiToUserList(List<User> userList) {
String[] result = new String[userList.size()];
int i = 0;
for (User u : userList) {
result[i] = "Hello " + u.getName();
i++;
}
return result;
} }

User实体类:

public class User {

    private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }

服务端代码:

public class webServiceApp {
public static void main(String[] args) {
System.out.println("web service start");
HelloWorldImpl implementor= new HelloWorldImpl();
String address="http://localhost:8000/helloWorld";
Endpoint.publish(address, implementor);
System.out.println("web service started");
}
}

客户端代码:有集成spring和没集成的

public class HelloWorldClient {
public static void main(String[] args) { //集成spring和cxf
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld client1 = (HelloWorld) context.getBean("client1");
User user1 = new User();
user1.setName("Tony");
user1.setAge(20);
User user2 = new User();
user2.setName("freeman");
user2.setAge(50);
List<User> userList = new ArrayList<User>();
userList.add(user1);
userList.add(user2);
// String[] res = client1.SayHiToUserList(userList);
// System.out.println(res[0]);
// System.out.println(res[1]);
String sayHi = client1.sayHi("good");
System.out.println(sayHi); // HelloWorld2 client2 = (HelloWorld2) context.getBean("client2");
// User user3 = new User();
// user3.setName("Jerry");
// user3.setAge(20);
// String user = client2.sayHiToUser(user3);
// System.out.println(user); //没有集成
JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();
svr.setServiceClass(HelloWorld.class);
svr.setAddress("http://localhost:8000/helloWorld");
HelloWorld hw = (HelloWorld) svr.create();
User user = new User();
user.setName("Tony");
System.out.println(hw.sayHi("ffff")); }
}

打印的结果是:

Hello good

Hello ffff

web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>cxf</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml</param-value>
</context-param> <listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener> <listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener> <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>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

applicationContext.xml的配置,这个文件是放在资源文件resources下的,他在项目中的路径是在classes里面的。我在这里配置了两个站点。都是可以的。

<?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.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <!-- 发布一个站点 -->
<jaxws:endpoint id="boy" implementor="com.cs.webservice.HelloWorldImpl"
address="/aaa" /> <bean id="client1" class="com.cs.webservice.HelloWorld"
factory-bean="clientFactory1" factory-method="create" /> <bean id="clientFactory1" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com.cs.webservice.HelloWorld" />
<property name="address" value="http://localhost:8000/helloWorld/aaa" />
</bean> <!-- 第二个站点 -->
<!-- <jaxws:endpoint id="orange" implementor="com.cs.webservice.HelloWorldImpl2"
address="/bbb" /> <bean id="client2" class="com.cs.webservice.HelloWorld2"
factory-bean="clientFactory2" factory-method="create" /> <bean id="clientFactory2" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com.cs.webservice.HelloWorld2" />
<property name="address" value="http://localhost:8080/cxfwebservicespring/bbb" />
</bean> -->
</beans>
<property name="address" value="http://localhost:8000/helloWorld/aaa" />
aaa前面的路径必须与发布的String address="http://localhost:8000/helloWorld";路径相同。

webservice整合spring cxf的更多相关文章

  1. WebService之Spring+CXF整合示例

    一.Spring+CXF整合示例 WebService是一种跨编程语言.跨操作系统平台的远程调用技术,它是指一个应用程序向外界暴露一个能通过Web调用的API接口,我们把调用这个WebService的 ...

  2. CXF WebService整合Spring

    转自http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html 首先,CXF和spring整合需要准备如下jar包文件: 这边我是用Spr ...

  3. webservice整合spring

    接口HelloWorld需要添加webservice注解 package com.cs.webservice; import java.util.List; import javax.jws.WebP ...

  4. webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成

    首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. Res ...

  5. WebService学习之三:spring+cxf整合

    步骤一:spring项目(java web项目)引入CXF jar包 步骤二:创建webservice服务器 1)创建一个服务接口 package com.buss.app.login; import ...

  6. CXF整合Spring开发WebService

    刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开 ...

  7. Spring整合CXF步骤,Spring实现webService,spring整合WebService

    Spring整合CXF步骤 Spring实现webService, spring整合WebService >>>>>>>>>>>> ...

  8. Spring+CXF整合来管理webservice(服务器启动发布webservice)

    Spring+CXF整合来管理webservice    实现步骤:      1. 添加cxf.jar 包(集成了Spring.jar.servlet.jar ),spring.jar包 ,serv ...

  9. WebService—CXF整合Spring实现接口发布和调用过程

    一.CXF整合Spring实现接口发布 发布过程如下: 1.引入jar包(基于maven管理) <!-- cxf --> <dependency> <groupId> ...

随机推荐

  1. 4-Bom&Dom总结篇

    其实Bom就是指浏览器的东西,比如弹窗啊.浏览器信息啊等 而Dom则是指文档的东西,就是浏览器里边html的东西,如元素啊.属性啊.事件什么的 但Bom的唯一顶层对象window又包含Dom的顶层对象 ...

  2. Grunt使用教程(限winows)

    前提:安装nodejs 一. 打开dos命令窗口,输入命令 "node -v",确认nodejs安装成功 二. 其次,安装grunt-cli (该插件是grunt命令行插件),执行 ...

  3. css background-attachment属性

    前提是定义了background-image属性,然后用background-attachment来指明背景图的位置是固定于视口的,还是随着包含块移动的.可简单理解为定义背景图片随滚动轴的移动方式. ...

  4. CharSequence 接口

    java中有些方法需要用到CharSequence 类型的参数,笔者百度了一下,总结出一下几点: 1.CharSequence 是一个接口,可以直接用“=”赋值一段字符串,但是不能用new新建一个对象 ...

  5. C#第十二天

    1.Directory 操作文件夹 1)创建文件夹 Directory.CreateDirectory(@"C:\a"); Console.WriteLine("创建成功 ...

  6. KMP算法的实现

    今天看到了一篇关于KMP算法的讲解的文章,很难得,讲得非常清楚.分享给大家,希望对大家有帮助.http://kb.cnblogs.com/page/176818/ 我自己基于这个讲解的内容作了一个实现 ...

  7. intellig idea 快捷键

    可以在设置中更改为 eclipse 风格的快捷键. 默认 按住 ctlr + 左键,会调整到对应的声明处, 如果有实现类,eclipse中给予了选择. 在idea 中如果想直接调整到实现类,那么采用快 ...

  8. 全局变量引起的BUG

    花费3个小时解决了一个问题,时间比较长. 这次问题的原因是全局变量引起的,一个实例的函数用到了全局变量计算一个值,而全局变量的这个值会进行改变,所以在不同时期算出来的值是不一致的.而调用这个实例函数的 ...

  9. SQL语句优化技术分析 整理他人的

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  10. Hive中频繁报警的问题

    在使用Hive的过程中,是不是会在shell中报一堆警告,虽然说不影响正常使用,但是看着很烦人,而且指不定会影响数据的准确性和运行的稳定性. 警告的内容如下: Tue Aug :: CST WARN: ...