CXF webservice
来源:互联网 发布:广发白发大数据001731 编辑:程序博客网 时间:2024/06/11 22:03
说实话,一切知识只要你细心,都能在官网找到,但有些朋友浪费很长时间,就是搞不懂。戒骄戒躁,静下心来。
最近有个同事,凡事都和犟嘴,我躲都躲不了,言必称百度,网易,facebook,google,多小的问题都能上升到哥德巴赫猜想的理论高度,而实际上工作效率极其低下。
我这里想说的是, 少些理论多些实际,你看的见的理论都是从你看不见的地方总结出来的。一步一个脚印吧。
cxf简单不能在简单的webservice发布,难点只有一个,那就是与jdk6冲突问题。网上许多解决方案,但是忽略了一个,jar包版本问题。
${JAVA_HOME}\jdk6\jre\lib\endorsed
在次检查CXF中的jar包,是否是2.2.1.1以上版本,若不然还是报错。删除其他的jax-api 开头的jar必须删除要不还是冲突。
2:服务端代码
package com.cxf.service.server;
import java.util.List;
import javax.jws.WebParam;
import javax.jws.WebService;
/**
* This class was generated by Apache CXF 2.3.3
* 2012- 05- 18T15:26:41.003+08:00
* Generated source version: 2.3.3
*
*/
@WebService ( name = "orderService" )
public interface OrderService {
String sayHi( @WebParam(name= "text")String text);
String sayHiToUser(User user);
String[] SayHiToUserList(List<User> userList);
}
实现类:
package com.cxf.service.server;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.jws.WebService;
@WebService (endpointInterface = "com.cxf.service.server.OrderService" , serviceName = "orderService" )
public class OrderProcessImpl implements OrderService {
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;
}
}
2:web.xml
<? xml version ="1.0" encoding= "UTF-8" ?>
<! DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
< web-app>
<context-param >
<param-name >contextConfigLocation </ param-name>
<param-value >WEB-INF/beans.xml </ param-value>
</context-param >
<listener >
<listener-class >
org.springframework.web.context.ContextLoaderListener
</ listener-class>
</listener >
<servlet >
<servlet-name >CXFServlet </ servlet-name>
<display-name >CXF Servlet </ display-name>
<servlet-class >
org.apache.cxf.transport.servlet.CXFServlet
</ servlet-class>
<init-param >
<param-name >config-location </ param-name>
<param-value >/WEB-INF/beans.xml </ param-value>
</ init-param>
<load-on-startup >1 </ load-on-startup>
</servlet >
<servlet-mapping >
<servlet-name >CXFServlet </ servlet-name>
<url-pattern >/services/* </ url-pattern>
</servlet-mapping >
</ web-app>
源码就不上传了,太简单了。
3:客户端代码,为了避免兼容性,也是本人太懒我采用的是自动代码生成。请看ant文件内容:
<?xml version="1.0"?>
<project name= "cxf wsdl2java" basedir= "." default= "cxfWSDLToJava">
<property name="cxf.home" location = "${basedir}/WebRoot/WEB-INF/"/>
<path id="cxf.classpath" >
<fileset dir="${cxf.home}/lib" >
<include name= "**/*.jar"/>
</fileset>
</path>
<target name="cxfWSDLToJava" >
<java classname= "org.apache.cxf.tools.wsdlto.WSDLToJava" fork= "true">
<arg value= "-client"/>
<arg value= "-d"/>
<arg value= "client"/>
<arg value= "http://localhost:8080/webserviceCXF/services/OrderService?wsdl" />
<classpath>
<path refid= "cxf.classpath"/>
</classpath>
</java>
</target>
</project>
- WebService-CXF
- CXF webservice
- CXF WebService
- WebService CXF
- CXF WebService
- CXF WebService
- CXF webservice
- webservice cxf
- cxf webservice
- cxf webservice
- webservice CXF
- webservice cxf
- CXF WebService
- Webservice-CXF
- Cxf webservice
- WebService cxf
- cxf Webservice
- webservice cxf
- 黑马程序员--银行业务调度系统
- 获取系统信息,如开机时间,ram容量,等信息
- 23天学完mysql系统变量(七)
- oracle 查询语句基本知识
- Angle之 Tutorial01
- CXF webservice
- Mysql存储过程数据汇总(一)
- 反射,内省与javaBean
- 用Xpath刷选出节点为空的节点
- linux usb 驱动简单介绍
- 一道面试题
- PowerDesigner从数据库中导出表结构
- BMP位图结构
- 高性能IO设计的Reactor和Proactor模式