CXF的啓動

CXF uses Spring to provide XML configuration of services. This means that first we'll want to load Spring via a Servlet listener and tell it where our XML configuration file is: html

Next, you'll need to add CXFServlet to your web.xml: java

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
<web-app>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
      classpath:com/acme/ws/services.xml
    </param-value>
  </context-param>
 
  <listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>
 
  <servlet>
    <servlet-name>CXFServlet</servlet-name>
    <display-name>CXF Servlet</display-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>/services/*</url-pattern>
  </servlet-mapping>
 
</web-app>

Alternatively, you can point to the configuration file using a CXFServlet init parameter : web

<?xmlversion="1.0"encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
<web-app>
 
  <servlet>
    <servlet-name>CXFServlet</servlet-name>
    <display-name>CXF Servlet</display-name>
    <servlet-class>
        org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    <init-param>
      <param-name>config-location</param-name>
      <param-value>/WEB-INF/beans.xml</param-value>   
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
   
</web-app>

The next step is to actually write the configuration file: spring

      xmlns:jaxws=" http://cxf.apache.org/jaxws"
      xmlns:jaxrs=" http://cxf.apache.org/jaxrs"
      xsi:schemaLocation="
          http://cxf.apache.org/jaxws
          http://cxf.apache.org/jaxrs
 
  <importresource="classpath:META-INF/cxf/cxf.xml"/>
  <importresource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
  <importresource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
  <importresource="classpath:META-INF/cxf/cxf-servlet.xml"/>
 
  <jaxws:endpointid="greeter"
      implementor="org.apache.hello_soap_http.GreeterImpl"
      address="/Greeter1"/>
 
  <jaxrs:serverid="greeterRest"
      serviceClass="org.apache.hello_soap_http.GreeterImpl"
      address="/GreeterRest"/>
 
</beans>

Here we're creating a JAX-WS endpoint based on our implementation class, GreeterImpl. apache

NOTE: We're publishing endpoints "http://localhost/mycontext/services/Greeter1" and "http://localhost/mycontext/services/GreeterRest", but we set jaxws:endpoint/@address and jaxrs:server/@address to relative values such as "/Greeter1" "/GreeterRest". app

相關文章
相關標籤/搜索