CXF集成Spring实现webservice的发布(服务端)
目录结构:
主要代码:
package com.cxf.spring.pojo; public class User { int id ; String name = null; String address = null; String email = null; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { String re = id+":"+name+":"+address+":"+email+":"; return re; } }
package com.cxf.spring.service; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import com.cxf.spring.pojo.User; @WebService public interface IGreetingService { @WebMethod public String greeting(@WebParam(name ="name") String name); public User getUserByName(@WebParam(name = "name") String name); public void setUser(@WebParam(name = "user") User user); }
package com.cxf.spring.service; import com.cxf.spring.pojo.User; public class GreetingServiceImpl implements IGreetingService{ @Override public String greeting(String name) { return "HI:....."+name; } @Override public User getUserByName(String name) { User user = new User(); user.setId(100); user.setName(name); user.setAddress("china"); user.setEmail(name + "@test.com"); return user; } @Override public void setUser(User user) { System.out.println("############Server setUser###########"); System.out.println("setUser:" + user); } }
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <bean id="greetingServiceBean" class="com.cxf.spring.service.GreetingServiceImpl"></bean> <jaxws:server id="greetingService" serviceClass="com.cxf.spring.service.IGreetingService" address="/greet"> <jaxws:serviceBean> <ref bean="greetingServiceBean"/> </jaxws:serviceBean> </jaxws:server> </beans>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>CXFService</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CXFService</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
CXF集成Spring实现webservice的请求(客户端)
主要代码:
package com.cxf.spring.pojo; public class User { int id ; String name = null; String address = null; String email = null; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } /* @Override public String toString() { String re = id+":"+name+":"+address+":"+email+":"; return re; }*/ }
package com.cxf.spring.service; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import com.cxf.spring.pojo.User; @WebService public interface IGreetingService { @WebMethod public String greeting(@WebParam(name ="name") String name); public User getUserByName(@WebParam(name = "name") String name); public void setUser(@WebParam(name = "user") User user); }
package com.cxf.spring.service; import java.io.IOException; import javax.servlet.GenericServlet; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; public class ServletToBeanProxy extends GenericServlet { private static final long serialVersionUID = -6841906526208019964L; private String targetBean; private Servlet proxy; @Override public void init() throws ServletException { super.init(); WebApplicationContext wac = WebApplicationContextUtils .getRequiredWebApplicationContext(getServletContext()); this.targetBean = getServletName(); this.proxy = (Servlet) wac.getBean(targetBean); proxy.init(getServletConfig()); } @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { proxy.service(request, response); } }
package com.cxf.spring.service; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import com.cxf.spring.pojo.User; public class ClientServlet extends HttpServlet{ private static final long serialVersionUID = 8534382443557539155L; @Autowired public IGreetingService client; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Yeah, it‘s a get test"); response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); response.getWriter().write("Hello World, Getter"); System.out.println("#############Client getUserByName##############"); User user = client.getUserByName("hoojo"); System.out.println("greet=====:"+client.greeting("hoojo")); System.out.println(user); user.setAddress("China-Guangzhou"); client.setUser(user); /* PrintWriter out = response.getWriter(); out.println("Hello,Spring.Servlet"); response.sendRedirect("get.jsp");*/ } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Yeah, it‘s a post test"); response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); response.getWriter().write("Hello World, Poster"); // PrintWriter out = response.getWriter(); // out.println("Hello,Spring.Servlet"); // response.sendRedirect("post.jsp"); } public IGreetingService getClient() { return client; } public void setClient(IGreetingService client) { this.client = client; } }
<?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:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd" xmlns:jaxws="http://cxf.apache.org/jaxws"> <!-- enable transaction demarcation with annotations --> <tx:annotation-driven /> <!-- enable autowire --> <context:annotation-config /> <bean id="clientServlet" class="com.cxf.spring.service.ClientServlet"> <property name="client" ref="client"></property> </bean> <bean id="client" class="com.cxf.spring.service.IGreetingService" factory-bean="clientFactory" factory-method="create" /> <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="com.cxf.spring.service.IGreetingService" /> <property name="address" value="http://localhost:8080/CxfSpring/greet" /> </bean> <jaxws:client id="greetingService" serviceClass="com.cxf.spring.service.IGreetingService" address="http://localhost:8080/CxfSpring/greet"> </jaxws:client> </beans>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>clientServlet</servlet-name> <servlet-class>com.cxf.spring.service.ServletToBeanProxy</servlet-class> </servlet> <servlet-mapping> <servlet-name>clientServlet</servlet-name> <url-pattern>/testClient</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
所需jar包:
时间: 2024-10-14 10:10:48