1、a > 建一个web项目,添加完spring+hibernate的jar包以后,添加jax-ws 2.1等jar路径;
b > 然后写一个java类,带上@WebService和@WebMethod,
c > 使用Myeclipse自动生成WS,会自动生成wsdl、web.xml中的配置等,applicationContext.xml中不用额外配置;
(加上@,则不会生成TgsFuncitonDelegate)
d > 在spring中,toTell中注入private WSAction wsaction,wsaction使用时报空指针,实例化toTell时wsaction没有注入成功,需要这样得到wsaction
ApplicationContext context = new ClasspathXmlApplicationContext("applicationContext.xml");
WSAction wsaction= (TgsPassedCaraction)context.getBean("WSAction");
e > (jar包:spring +
hibernate +
jax-ws 2.1 RunTime Liberaries +
jax-ws 2.1 API Liberaries)
----------------------------------------------------------web.xml中自动生成的部分---------------------------------------------------------------------------------------------------------
-------------------------------------还有记得是WSServlet,不要和后边的WsspringServlet混了----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"> <display-name></display-name> <span style="color:#ff0000;"> <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.WSservletcontextlistener </listener-class> </listener> </span> <servlet> <description>JAX-WS endpoint - todoService</description> <display-name>todoService</display-name> <servlet-name>todoService</servlet-name> <servlet-class> <span style="color:#ff0000;">com.sun.xml.ws.transport.http.servlet.WSServlet</span> </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>todoService</servlet-name> <url-pattern>/todoPort</url-pattern> </servlet-mapping> </web-app>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2、通过spring注入的方式,而不用再context.getBean()的方式获得注入的bean组件,更加方便
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
a > 首先加上Spring+jax-ws整合所需要的jar包,见下面,spring和hibernate的jar包随意加;
b > 写一个java类,要加上@WebService(targetNamespace = "org.coderecord.blog"),括号里的没加的话,我这里报错(Caused by: com.sun.xml.ws.model.RuntimeModelerException: 必须在没有程序包的类上指定 @WebService.targetNamespace。类: Test);
@WebMethod(exclude = true)使get/set方法对外不可见;
<p> import javax.jws.WebMethod; import javax.jws.WebService;</p><p> @WebService(targetNamespace = "org.coderecord.blog") public class Test { private TestBean testBean; @WebMethod public String toTest(String name){ String daming = testBean.tosat("lvlvlv"); System.out.println(name+": "+daming); return name+":"+daming; } @WebMethod(exclude = true) public TestBean getTestBean() { return testBean; } @WebMethod(exclude = true) public void setTestBean(TestBean testBean) { this.testBean = testBean; } }</p>
c > 接着,applicationContext.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" <span style="color:#ff0000;">xmlns:ws="http://jax-ws.dev.java.net/spring/core" </span> <span style="color:#ff0000;"> xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"</span> xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" 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.2.xsd <span style="color:#ff0000;"> http://jax-ws.dev.java.net/spring/core http://jax-ws.dev.java.net/spring/core.xsd http://jax-ws.dev.java.net/spring/servlet http://jax-ws.dev.java.net/spring/servlet.xsd"></span> <bean id="test" class="Test"> <property name="testBean"> <ref bean="testBean"/> </property> </bean> <bean id="testBean" class="TestBean"></bean> <span style="color:#ff0000;"> <wss:binding url="/service/test"> <wss:service> <ws:service bean="#test" /> </wss:service> </wss:binding> </span></beans>
d > web.xml中手动配置,注意下面红色的代码和第一种jax-ws写法中的WSServlet 不是一个Servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"> <display-name></display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/*Context.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <description>JAX-WS endpoint - test</description> <display-name>testService</display-name> <servlet-name>testService</servlet-name> <span style="color:#ff0000;"><servlet-class>com.sun.xml.ws.transport.http.servlet.WsspringServlet</servlet-class> </span> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>testService</servlet-name> <url-pattern>/service/test</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。