首页 > 代码库 > webservice整合spring
webservice整合spring
接口HelloWorld需要添加webservice注解
package com.cs.webservice;import java.util.List;import javax.jws.WebParam;import javax.jws.WebService;@WebServicepublic interface HelloWorld { String sayHi(@WebParam(name="text")String text); String sayHiToUser(User user); String[] SayHiToUserList(List<User> userList);}
package com.cs.webservice;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import javax.jws.WebService;@WebService(serviceName="boy")public class HelloWorldImpl implements HelloWorld { Map<Integer, User> users = new LinkedHashMap<Integer, User>(); public String sayHi(String text) { return "Hello " + text; } public String sayHiToUser(User user) { users.put(users.size() + 1, user); return "Hello " + user.getName(); } public String[] SayHiToUserList(List<User> userList) { String[] result = new String[userList.size()]; int i = 0; for (User u : userList) { result[i] = "Hello " + u.getName(); i++; } return result; }}
接口实现类需要添加webservice注解。
package com.cs.webservice;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; } }
实体类
package com.cs.webservice;import javax.xml.ws.Endpoint;public class webServiceApp { public static void main(String[] args) { System.out.println("web service start"); HelloWorldImpl implementor= new HelloWorldImpl(); String address="http://localhost:8000/helloWorld"; Endpoint.publish(address, implementor); System.out.println("web service started"); }}
服务端代码
访问http://localhost:8000/helloWorld?wsdl,如果出现了wsdl文档就证明发布项目成功。
package com.cs.webservice;import java.util.ArrayList;import java.util.List;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class HelloWorldClient { public static void main(String[] args) { //集成spring和cxf ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");// HelloWorld client1 = (HelloWorld) context.getBean("client1");// User user1 = new User();// user1.setName("Tony");// user1.setAge(20);// User user2 = new User();// user2.setName("freeman");// user2.setAge(50);// List<User> userList = new ArrayList<User>();// userList.add(user1);// userList.add(user2);// // String[] res = client1.SayHiToUserList(userList);// // System.out.println(res[0]);// // System.out.println(res[1]);// String sayHi = client1.sayHi("good");// System.out.println(sayHi); HelloWorld2 client2 = (HelloWorld2) context.getBean("client2"); User user3 = new User(); user3.setName("Jerry"); user3.setAge(20); String user = client2.sayHiToUser(user3); System.out.println(user); //没有集成// JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();// svr.setServiceClass(HelloWorld.class);// svr.setAddress("http://localhost:8000/helloWorld");// HelloWorld hw = (HelloWorld) svr.create();// User user = new User();// user.setName("Tony");// System.out.println(hw.sayHi("ffff")); }}
客户端代码
<?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="boy" implementor="com.cs.webservice.HelloWorldImpl" address="/aaa" /> <bean id="client1" class="com.cs.webservice.HelloWorld" factory-bean="clientFactory1" factory-method="create" /> <!-- 通过spring的bean属性在启动容器的时候依赖注入bean,通过工厂方法create --> <bean id="clientFactory1" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="com.cs.webservice.HelloWorld" /> <property name="address" value="http://localhost:8080/CXFWebServiceDemo/aaa" /> </bean> <!-- 第二个站点 --> <jaxws:endpoint id="orange" implementor="com.cs.webservice.HelloWorldImpl2" address="/bbb" /> <bean id="client2" class="com.cs.webservice.HelloWorld2" factory-bean="clientFactory2" factory-method="create" /> <bean id="clientFactory2" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="com.cs.webservice.HelloWorld2" /> <property name="address" value="http://localhost:8080/CXFWebServiceDemo/bbb" /> </bean> </beans>
applicationContext.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"> <display-name>cxf</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <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>/*</url-pattern> </servlet-mapping></web-app>
web.xml的配置
webservice整合spring
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。