Install the cxf plug-in eclipse to develop Java Web Service and integrate Spring

Source: Internet
Author: User

This article describes how to install the cxf plug-in eclipse [3.3.2. Develop a simple Java Web Service and integrate it with spring.
Install plug-ins:
1. Download STP all_in_one from
Install this plug-in, you can use the link file to install, refer to http://blog.csdn.net/kkdelta/archive/2009/03/12/3983999.aspx
2. Download the jar package required by the cxf runtime environment,

Http://people.apache.org/repo/m2-snapshot-repository/org/apache/cxf/apache-cxf/

I use a apache-cxf-2.1-incubator-20080414.232258-49.zip.
3. Open eclipse. On the menu bar, choose windows> preference> SOA tools. For example, the plug-in is successfully installed.

4. Configure the cxf running environment, for example, installed runtimes ---- add -- appach cxf 2.0 -- next indicates the path of apache-cxf-2.1-incubator-20080414.232258-49.zip to be decompressed.

Develop Web Java Service
1. Create a web project and create the following interface in the project:
Package com. Test. cxf;
Public interface wsprovider {
Public String testws (string msgin );
}
Right-click the created Project, JAX-WS tools --- enable JAX-WS -- Java first programing mode, and choose run cxf environment -- select new interface -- finish.
Java anotation will be added to your interface as follows:

package com.test.cxf;import javax.jws.WebService;@WebService(name="WSprovider", targetNamespace="http://cxf.test.com/")public interface WSprovider {    public String testWS(String msgIn);}

2. In the outline view, right-click testws () and choose JAX-WX tools --> Create web method
Java anotation will be added to your interface as follows:

@WebService(name="WSprovider", targetNamespace="http://cxf.test.com/")public interface WSprovider {    @WebMethod(operationName="testWS", exclude=false)    @ResponseWrapper(className="com.test.cxf.TestWSResponse", localName="testWSResponse", targetNamespace="http://cxf.test.com/")    @RequestWrapper(className="com.test.cxf.TestWS", localName="testWS", targetNamespace="http://cxf.test.com/")    public String testWS(String msgIn);}

3, then right click on the project, JAX-WS tools --- generate all
The interface implementation class is generated as follows:

@WebService(endpointInterface = "com.test.cxf.WSprovider", serviceName = "WSproviderService")                     public class WSproviderImpl implements WSprovider {    public java.lang.String testWS(java.lang.String arg0) {         ........    }}

By now, the development of simple web services is complete.
Integrate spring
1. Create a bean. xml file under the WEB-INF:

<?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.xsdhttp://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">    <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" />    <bean name="testService" class="com.test.cxf.WSCXFProviderImpl"/>       <jaxws:endpoint        id="testEndpoint"        implementor="#testService"        wsdlLocation="classpath:wsdl/prjCXFWeb.wsdl"        address="/WSCXFProviderPort">        <jaxws:features>            <bean class="org.apache.cxf.feature.LoggingFeature"/>        </jaxws:features>    </jaxws:endpoint>     </beans>

2. Modify the generated WSDL file:
<Soap: address location = "http: // localhost: 9090/wsproviderport"/>
Change to <soap: address location = "http: // localhost: 8080/prjcxfweb/services/wscxfproviderport"/>
Create a new WSDL file in your src file and copy the modified WSDL to this file [to correspond to wsdllocation in bean. xml ].

3. Add the following content to Web. xml:

  <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>WEB-INF/beans.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>/services/*</url-pattern>    </servlet-mapping>

4. Publish the WEB Project to Web iner (e. g Tomcat), and the Web service can be called.
In IE, enter http: // localhost: 8080/prjcxfweb/services/wscxfproviderport? WSDL. You can see the WSDL file to prove it.
The Web service has been published successfully.

If it is not integrated with spring, you can implement a cxfnonspringservlet Servlet and configure this servlet in Web. XML to process Web Service requests.

public class SimpleServlet extends CXFNonSpringServlet {    private static final long serialVersionUID = 1L;    public void loadBus(ServletConfig servletConfig) throws ServletException {        super.loadBus(servletConfig);        BusFactory.setDefaultBus(getBus());        Object implementor = new WSCXFProviderImpl();        Endpoint.publish("/p1", implementor);    }}    <!-- not using Spring -->    <servlet>        <servlet-name>CXFServlet</servlet-name>        <servlet-class>            com.bt.cxf.ws.SimpleServlet        </servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>CXFServlet</servlet-name>        <url-pattern>/services/*</url-pattern>    </servlet-mapping>

In IE, enter http: // localhost: 8080/prjcxfweb/services/P1? WSDL. You can see the WSDL file to prove it.

The Web service has been published successfully. [P1 corresponds to ndpoint. Publish ("/P1", implementor);]

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.