CXF+MyEclipse 开发webservice入门实例之HelloWorld
2015-10-26 16:14
627 查看
按照CXF的用户文档上的描述,来写一个helloworld的webservice小实例!
第一步,新建一个名为“CXF_HelloWorld”的web project,加入如下jar包。
另外还需要加入spring的jar包。
第二步,配置web.xml,把CXFServlet配置到web.xml中
代码如下:
[xhtml] view
plaincopy
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>Apache CXF Endpoint</description>
<display-name>cxf</display-name>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
第三步,编写webservice
HelloWorld.java
[java] view
plaincopy
package cxf.server;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
@WebMethod
public String sayHello(@WebParam String message);
}
HelloWorldImpl.java
[c-sharp] view
plaincopy
package cxf.server;
public class HelloWorldImpl implements HelloWorld{
@Override
public String sayHello(String message) {
// TODO Auto-generated method stub
return message;
}
}
第四步,把编写好的服务部署到cxf-servlet.xml中
cxf-servlet.xmls放在web-inf目录下
[c-sharp] view
plaincopy
<?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"
xmlns:soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:server id="HelloWorld" serviceClass="cxf.server.HelloWorld">
<jaxws:serviceBean>
<bean class="cxf.server.HelloWorldImpl" />
</jaxws:serviceBean>
</jaxws:server>
</beans>
第五步,编写客户端调用webservice
客户端HelloWorldClient.java
[c-sharp] view
plaincopy
package cxf.client;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import cxf.server.HelloWorld;
public class HelloWorld {
public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
factory.setServiceClass(HelloWorld.class);
factory.setAddress("http://localhost:8080/CXF_HelloWorld/services/HelloWorld");
HelloWorld client = (HelloWorld) factory.create();
String reply = client.sayHello("hello world!");
System.out.println(reply);
}
}
第六步,部署,运行
把项目部署到tomcat上,启动tomcat,运行HelloWorldClient.java
控制台成功输出hello world!
版权声明:本文为博主原创文章,未经博主允许不得转载。
第一步,新建一个名为“CXF_HelloWorld”的web project,加入如下jar包。
另外还需要加入spring的jar包。
第二步,配置web.xml,把CXFServlet配置到web.xml中
代码如下:
[xhtml] view
plaincopy
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>Apache CXF Endpoint</description>
<display-name>cxf</display-name>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
第三步,编写webservice
HelloWorld.java
[java] view
plaincopy
package cxf.server;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
@WebMethod
public String sayHello(@WebParam String message);
}
HelloWorldImpl.java
[c-sharp] view
plaincopy
package cxf.server;
public class HelloWorldImpl implements HelloWorld{
@Override
public String sayHello(String message) {
// TODO Auto-generated method stub
return message;
}
}
第四步,把编写好的服务部署到cxf-servlet.xml中
cxf-servlet.xmls放在web-inf目录下
[c-sharp] view
plaincopy
<?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"
xmlns:soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:server id="HelloWorld" serviceClass="cxf.server.HelloWorld">
<jaxws:serviceBean>
<bean class="cxf.server.HelloWorldImpl" />
</jaxws:serviceBean>
</jaxws:server>
</beans>
第五步,编写客户端调用webservice
客户端HelloWorldClient.java
[c-sharp] view
plaincopy
package cxf.client;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import cxf.server.HelloWorld;
public class HelloWorld {
public static void main(String[] args) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
factory.setServiceClass(HelloWorld.class);
factory.setAddress("http://localhost:8080/CXF_HelloWorld/services/HelloWorld");
HelloWorld client = (HelloWorld) factory.create();
String reply = client.sayHello("hello world!");
System.out.println(reply);
}
}
第六步,部署,运行
把项目部署到tomcat上,启动tomcat,运行HelloWorldClient.java
控制台成功输出hello world!
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 一个java 验证码的实现提供多种的实现
- java 读取Properties文件
- java从0开始学——数组,一维和多维
- flex+java 项目创建 和 例子
- spring beans 自动注入的概念
- java中的自动打包解包与原始非泛型Map接口中的get()方法
- Java map 用法
- Struts2自定类型转换器
- 深入详解Struts2——struts.xml配置之Result配置详解
- SpringMVC(2)入门程序
- Java file 操作
- MyEclipse的Console输出中文时出现乱码
- MyEclipse多Maven module导入问题以及思路分享
- Java中复制多级文件夹的方式
- eclipse中安装scala插件
- Java 文件和byte数组转换
- Spring中配置数据源的4种形式
- Java Web指导方向
- java反射
- JAVA Calendar的求一个月的最后一天多种方法实现