WebService with Spring
<!--
配置Spring的ContextLoaderListener监听器-->
<context-param>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 配置CXFServlet -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
<!-- 引入cxf的两个配置文件 -->
<!-- 通过<jaxw:endpoint创建一个服务终端 -->
<!-- implementor:服务端实现类 -->
<!-- id:spring上下文中的bean的id -->
<!--address:服务请求地址 -->
<!--
<jaxws:endpoint id="helloWorld"
implementor="demo.spring.service.HelloWorldImpl"
address="/HelloWorld">
</jaxws:endpoint>
-->
<jaxws:endpoint id="login"
implementor="demo.cxf.service.LoginImpl"
address="/Login">
</jaxws:endpoint>
如果看到配置文件---------就表示服务端配置成功.
在Eclipse里打包就可以用啦 Export jar 本文中Spring 配置文件为 cxf-servlet.xml
二:创建客户端(有两种方法:一种是不要Spring管理。一种需要Spring管理)
2.1:导入相应的包,包括上面打的包
2.2:不要Spring管理 代码
package demo.cxf.client;
<?xml version="1.0" encoding="UTF-8"?>
<jaxws:client
id="helloClient"
serviceClass="demo.cxf.service.Login"
只能
填写Login接口代理类
address="http://localhost:8088/mycxf/Login"
></jaxws:client>
<bean id="client" class="demo.cxf.service.Login"//
填Login接口和LoginImpl都可以
factory-bean="clientFactory" factory-method="create">
</bean>
<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyfactorybean">
<property name="serviceClass" value="demo.cxf.service.Login"></property>
只能填写Login接口代理类
<property name="address" value="http://localhost:8088/mycxf/Login"></property>
</bean>
2.3.2 编写代码
package demo.spring.client;
= new ClasspathXmlApplicationC
ontext("cxf-servlet.xml");
一:创建服务器端
1.1:web.xml 配置
1.2:代码编写
1.2.1//编写接口
package demo.cxf.service;
import javax.jws.WebService;
@WebService(注释一定要写)
public interface Login {
public String login(String name,String password);
}
2.2.2//实现接口方法
package demo.cxf.service;
import javax.jws.WebService;
@WebService(endpointInterface="demo.cxf.service.Login",serviceName="Login")(注释一定要写)
public class LoginImpl implements Login {
@Override
public String login(String name,String password) {
String result = "登陆CXF服务端成功!";
if(!"cxf".equalsIgnoreCase(name)||
!"cxf".equalsIgnoreCase(password)){
}
return result;
}
}
1.3:编写Spring配置文件
<?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">
</beans>
1.4:启动服务器
http://localhost:8088/mycxf/Login?wsdl
import org.apache.cxf.jaxws.JaxWsProxyfactorybean;
import demo.cxf.service.Login;
public class CXFClient {
public static void main(String[] args) {
JaxWsProxyfactorybean jwpFactory = new JaxWsProxyfactorybean();
jwpFactory.setAddress("http://localhost:8088/mycxf/Login?wsdl");
jwpFactory.setServiceClass(Login.class);
Login login = (Login)jwpFactory.create();
String result = login.login("cxf","cxf");
System.out.println("登陆结果:"+result);
}
}
2.3:需要Spring管理的(web.xml不要在配置CXF启动啦)
<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">
</beans>
import org.springframework.context.support.ClasspathXmlApplicationC
ontext;
import demo.cxf.service.Login;
import demo.spring.service.HelloWorld;
public class Client {
public static void main(String[] args) {
ClasspathXmlApplicationC
ontext context
Login client = (Login)context.getBean("helloClient");
String response = client.login("cxf","cxf");
System.out.println("Response:"+response);
System.exit(0);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。