首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

cxf2.13调整spring

2012-12-21 
cxf2.13整合spring一、导入cxf所需jar档如下:commons-logging-1.1.1.jar?? geronimo-activation_1.1_spec-1

cxf2.13整合spring

一、导入cxf所需jar档如下:

commons-logging-1.1.1.jar??
geronimo-activation_1.1_spec-1.0.2.jar (or Sun's Activation jar)??
geronimo-annotation_1.0_spec-1.1.1.jar (JSR 250)??
geronimo-javamail_1.4_spec-1.6.jar (or Sun's JavaMail jar)??
geronimo-servlet_2.5_spec-1.2.jar (or Sun's Servlet jar)??
geronimo-ws-metadata_2.0_spec-1.1.2.jar (JSR 181)??
geronimo-jaxws_2.1_spec-1.0.jar (or Sun's jaxws-api-2.1.jar)??
geronimo-stax-api_1.0_spec-1.0.1.jar (or other stax-api jar)??
jaxb-api-2.1.jar? (jdk1.6自帶,jdk1.6無需加)
jaxb-impl-2.1.12.jar (jdk1.6自帶,jdk1.6無需加)
jetty-6.1.21.jar??
jetty-util-6.1.21.jar??
neethi-2.0.4.jar??
saaj-api-1.3.jar??
saaj-impl-1.3.2.jar??
wsdl4j-1.6.2.jar??
wstx-asl-3.2.8.jar??
XmlSchema-1.4.5.jar??
xml-resolver-1.2.jar??
cxf-2.2.2.jar?
FastInfoset-1.2.2.jar

jaxen-1.1.jar

?

二、server 端:

1.HelloWorld.java

代码:

package com.comwave.xzh.webservice;

import javax.jws.WebService;

/**
?* @author panda_xiong
?* @version 1.0
?*/
@WebService
public interface HelloWorld

{
? String say(String hello);
}

?

2.HelloWorldImpl.java

代码:

package com.comwave.xzh.webservice;

import javax.jws.WebService;

/**
?* @author panda_xiong
?* @version 1.0
?*/
@WebService(endpointInterface = "com.comwave.xzh.webservice.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
?public String say(String hello) {
??return "hello " + hello;
?}

}

?

3.server发布spring配置档server.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="
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">

???? <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" />
??? <bean id="aegisBean" />
????
?<bean id="jaxWsServiceFactoryBean" value="true" />
??<property name="dataBinding" ref="aegisBean" />
?</bean>
???
?<jaxws:endpoint id="webServiceHelloWorld" implementor="com.comwave.xzh.webservice.HelloWorldImpl" address="/HelloWorld">
??<jaxws:serviceFactory>
??<ref bean="jaxWsServiceFactoryBean"/>
??</jaxws:serviceFactory>
?</jaxws:endpoint>
</beans>

?

可以将上面<jaxws:endpoint>替换成

?<bean id="helloWorldImpl" />

?<jaxws:endpoint id="webServiceHelloWorld" implementor="#helloWorldImpl" address="/HelloWorld"/>

?

我们注意到这里引入了两个新的名称空间jaxws、jaxrs,jaxws 是配置SOAP 方式的Web 服务,有jaxws:server、jaxws:endpoint、jaxws:client 三个元素,jaxws:server 和jaxws:endpoint 是等效的,都用于发布Web 服务,出现jaxws:endpoint 的原因是JAX-WS 规范中使用EndPoint 发布Web 服务,CXF 为了和JAX-WS 对应,提供了这个与jaxws:server 功能一样的配置元素;jaxrs是REST 方式的Web 服务,有jaxrs:server、jaxrs:client 两个元素。

?

三、客户端

?

1.客户端spring配置档client.xml

<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-2.0.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">

<bean id="aegisBean" />

<bean id="serviceFactoryBean" ref="aegisBean" />
</bean>

<bean id="client" factory-bean="clientFactory" factory-method="create" />
<bean id="clientFactory" ref="serviceFactoryBean" />
? <property name="serviceClass" value="com.comwave.xzh.webservice.HelloWorld" />
? <property name="address" value="http://localhost:8089/WebService/ws/HelloWorld" />
</bean>
</beans>

?

使用Spring开发SOAP方式的客户端(使用标签)

<jaxws:client id="client" address="http://localhost:8089/WebService/ws/HelloWorld" service});
??HelloWorld client = (HelloWorld) context.getBean("client");
??String response = client.say("jimmy");
??System.out.println(response);
?}
}

?

四、web.xml配置

<?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">
?<context-param>
??<param-name>contextConfigLocation</param-name>
??<param-value>classpath:server.xml,classpath:client.xml</param-value>
?</context-param>
?<listener>
??<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
?</listener>
?<filter>
??<filter-name>struts2</filter-name>
??<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
?</filter>
?<filter-mapping>
??<filter-name>struts2</filter-name>
??<url-pattern>*.action</url-pattern>
?</filter-mapping>
?
???? <servlet>
???????? <servlet-name>CXFServlet</servlet-name>
???????? <servlet-class>
????????????? org.apache.cxf.transport.servlet.CXFServlet
???????? </servlet-class>
???? </servlet>
???? <servlet-mapping>
???????? <servlet-name>CXFServlet</servlet-name>
???????? <url-pattern>/ws/*</url-pattern>
???? </servlet-mapping>
????
? <welcome-file-list>
??? <welcome-file>index.jsp</welcome-file>
? </welcome-file-list>
</web-app>

热点排行