鸿 网 互 联 www.68idc.cn

cxf+spring发布webservice和调用

来源:互联网 作者:佚名 时间:2014-12-30 20:50
cxf+spring发布webservice和调用:项目所需jar包:http://url.cn/V6RvIw 因为我用到了httpclient,所以里面包含了httpclient的jar包。 建项...

cxf+spring发布webservice调用

发表于1周前(2014-12-21 15:56)   阅读(94) | 评论() 0人收藏此文章,

赞0

1月10日 #长沙# OSC 源创会第32期开始报名

摘要 cxf+spring发布webservice,简单,快捷。。。。。。


项目所需jar包: 因为我用到了httpclient,所以里面包含了httpclient的jar包。

建项目什么就不说了。

直接上代码说接口:

写一个demo接口

package cn.cxf.demo; import javax.jws.WebService; @WebService public interface Demo { String sayHi(String text); }

然后就需要实现它喽

targetNamespace 是指向接口的包路径

package cn.cxf.demo.impl; import javax.jws.WebService; import cn.cxf.demo.Demo; @WebService(endpointInterface="cn.cxf.demo.Demo", serviceName="DemoService", targetNamespace="http://demo.cxf.cn/") public class DemoImpl implements Demo { @Override public String sayHi(String text) { return "Hi ! " + text; } }

在src目录下添加applicationContext.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="         ">   <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <!-- 测试接口 --> <jaxws:endpoint id="demoService" implementor="cn.cxf.demo.impl.DemoImpl"  address="/DemoService" /> </beans>

再修改下web.xml文件就搞定了~(在web.xml添加如下内容就可以了)

<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>   <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>/ws/*</url-pattern>   </servlet-mapping>

发布一下,访问 :8080/cxfdemo/ws 就可以看到接口已经发布成功了。

调用接口就更简单了

如果只是单纯的调用接口的话只需要4个jar包就可以了:

cxf-2.4.3.jar

neethi-3.0.1.jar

wsdl4j-1.6.2.jar

xmlschema-core-2.0.1.jar

可以从上面的jar包里挑选。

调用代码如下:

package cn.cxf.test; import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; public class CXFWSTest { public static void main(String[] args) throws Exception { JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); Client client = factory.createClient("http://localhost:8080/cxfdemo/ws/DemoService?wsdl"); Object[] objs = client.invoke("sayHi", "阿福"); System.out.println(objs[0].toString()); } }

哈哈,是不是很简单。

分享到:

0

声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。

  • « 上一篇
  • 网友评论
    <