CXF是目前最流行的webService框架,今天写了一个小demo,还是以HelloWorld开头,的源码在附件.
服务端:工程名取名为WebService,该下的包去官方下cxf包。
User:
package com.lyqf;
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 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;
}
}
HelloWorld接口:
package com.lyqf;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
String sayHi(String text);
int getNum( int num);
User getUsers();
}
import javax.jws.WebService;
@WebService
public interface HelloWorld {
String sayHi(String text);
int getNum( int num);
User getUsers();
}
HelloWorldImpl实现类:
package com.lyqf;
public class HelloWorldImpl implements HelloWorld{
public String sayHi(String text) {
// Todo Auto-generated method stub
return "Hi,"+text;
}
public int getNum(int num) {
return num;
public User getUsers() {
User user = new User();
user.setAge(13);
user.setName("李导");
return user;
}
二、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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
</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-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</web-app>
<?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="helloWorld" implementor="com.lyqf.HelloWorldImpl" address="/HelloWorld" />
</beans>
四、然后发布到tomcat上面:
http://localhost:8080/WebService/HelloWorld?wsdl看结果。
客用端:新建一个web项目(java项目)把cxf包全导进来,
<?xml version="1.0" encoding="UTF-8"?>
<project name="cxf wsdl2java" basedir=".">
<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="src"/>
<arg value="http://localhost:8080/WebService/HelloWorld?wsdl"/>
<classpath>
<path refid="cxf.classpath"/>
</classpath>
</java>
</target>
</project>
注:小白可能不懂,其实直接在bulid.xml右键ant就就可以执行了,然后F5刷新一下,src下面就有很多java代码了。
2、通过配置像JAVA_HOME来做,比如取名叫:JAVA_CXF,然后找到他的位置,再通过path找到cxf的bin目录。网上很多教程。
新建一个Client类,这个就是客户端的测试:
package com.lyqf;
public class Client {
public static void main(String[] args) {
HelloWorldImplService fatory = new HelloWorldImplService();
//这里是返回的是接口代理
HelloWorld hw = fatory.getHelloWorldImplPort();
User us = hw.getUsers();
System.out.println(us.getName()+" "+us.getAge());
}
}
输出看下结果。
所用的lib:http://down.51cto.com/data/779187
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。