javaWeb项目发布带没有接口和有接口的WebService服务

来源:互联网 发布:淘宝网衣服货到付款 编辑:程序博客网 时间:2024/06/02 07:30

无接口的项目结构图:


web.xml

<?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" id="WebApp_ID" version="3.0">  <display-name>WebService_Web</display-name>  <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>  <!-- CXF框架的核心Servlet -->  <servlet>  <servlet-name>cxf</servlet-name>  <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  </servlet>  <servlet-mapping>  <servlet-name>cxf</servlet-name>  <url-pattern>/ws/*</url-pattern>  </servlet-mapping></web-app>


cxf-servlet.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"xmlns:soap="http://cxf.apache.org/bindings/soap"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsdhttp://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"><!-- 引入CXF Bean定义如下,早期的版本中使用 --><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" /><!-- 直接发布一个类,无接口 <jaxws:endpoint id="one" implementor="cn.itcast.ws1.OneService"address="/one"></jaxws:endpoint>发布一个服务,没有指定接口<jaxws:server id="two" address="/two" serviceClass="cn.itcast.ws2.ITwoService"><jaxws:serviceBean>指定发布类,下面类必须添加@WebService注解<bean class="cn.itcast.ws2.TwoServiceImpl"></bean></jaxws:serviceBean></jaxws:server> --><!-- 简单发布(PS:没有接口) --><!-- id:当前服务的唯一表示address:挡墙服务请求的ipimplementor:提供的服务类型 --><jaxws:endpoint id="helloService" address="/hello" implementor="Web_Service.Web_Servlet"><!-- 添加客户端消息请求拦截器 --><jaxws:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/></jaxws:inInterceptors><!-- 添加服务端消息请求拦截器 --><jaxws:outInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/></jaxws:outInterceptors></jaxws:endpoint></beans>

Web_Servlet.java:(这里是服务提供的方法:注意在类上加@WebService)

package Web_Service;import javax.jws.WebService;@WebServicepublic class Web_Servlet {public String sayHello(String name){System.out.println("sayHello called。。。"+name);return "hello"+name;}}



有接口的项目结构图:

就在上面的结构图中多加了一个接口和实现方法。


cxf-servlet.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"xmlns:soap="http://cxf.apache.org/bindings/soap"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsdhttp://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"><!-- 引入CXF Bean定义如下,早期的版本中使用 --><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" /><!-- 直接发布一个类,无接口 <jaxws:endpoint id="one" implementor="cn.itcast.ws1.OneService"address="/one"></jaxws:endpoint>发布一个服务,没有指定接口<jaxws:server id="two" address="/two" serviceClass="cn.itcast.ws2.ITwoService"><jaxws:serviceBean>指定发布类,下面类必须添加@WebService注解<bean class="cn.itcast.ws2.TwoServiceImpl"></bean></jaxws:serviceBean></jaxws:server> --><!-- 简单发布(PS:没有接口) --><!-- id:当前服务的唯一表示address:挡墙服务请求的ipimplementor:提供的服务类型 --><jaxws:endpoint id="helloService" address="/hello" implementor="Web_Service.Web_Servlet"><!-- 添加客户端消息请求拦截器 --><jaxws:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/></jaxws:inInterceptors><!-- 添加服务端消息请求拦截器 --><jaxws:outInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/></jaxws:outInterceptors></jaxws:endpoint><!-- 方式二:带有接口的发布形式 --><!-- serviceClass="Web_Service.HiService"接口的类 --><jaxws:server id="hiServer" address="/hi" serviceClass="Web_Service.HiService"><jaxws:serviceBean><!-- 实现类的类 --><bean class="Web_Service.sayHiImpl"/></jaxws:serviceBean></jaxws:server></beans>
如果我们要指定cxf-servlet.xml文件的位置需要在web.xml如下配置:
<?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" id="WebApp_ID" version="3.0">  <display-name>WebService_Web</display-name>  <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>  <!-- CXF框架的核心Servlet -->  <servlet>  <servlet-name>cxf</servlet-name>  <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  <init-param>  <param-name>config-location</param-name>  <param-value>classpath:cxf-servlet.xml</param-value>  </init-param>    </servlet>  <servlet-mapping>  <servlet-name>cxf</servlet-name>  <url-pattern>/ws/*</url-pattern>  </servlet-mapping></web-app>



0 0