`

cxf发布webservice实例

 
阅读更多
cxf发布webservice实例 (2011-11-24 09:28:00)转载▼
标签: it 分类: 通信框架-webservice,dubbo
新建test项目,导入cxf包,
1.定义接口HelloWorld.class:
package com.demo;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
String sayHi(String text);
}
2.定义实现类HelloWorldImpl.class:
package com.demo;  
import javax.jws.WebService; 
@WebService
public class HelloWorldImpl implements HelloWorld { 
    public String sayHi(String text) {  
        return "Hi,"+text; 
    } 
}
3.定义web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <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>
        <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>/*</url-pattern>
    </servlet-mapping>
</web-app>
4.web.xml同目录下定义beans.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://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" />

    <jaxws:endpoint id="helloWorld" implementor="com.demo.HelloWorldImpl" address="/HelloWorld" />
</beans>
发布到tomcat,测试http://127.0.0.1:8080/test/HelloWorld
5.定义client端Client.class:
package com.demo; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

public class Client { 
      public static Client self = new Client(); 
      private HelloWorld client = null; 
       
     private Client() { 
            // START SNIPPET: client 
            ApplicationContext context = new ClassPathXmlApplicationContext( 
                    new String[]{"com/demo/client-beans.xml"}); 
            client = (HelloWorld) context.getBean("client"); 
        } 
       

        public HelloWorld getServer() { 
             
            return client; 
             
        } 

        public String getText(String text) throws Exception { 
            String response = getServer().sayHi(text); 
            return response; 
        } 
    public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        try { 
             
            System.out.println(self.getText("test")); 
        } catch (Exception e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 
         
    } 

}
6.调用webservice:
<?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.xsd 
http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">

    <bean id="client" class="com.demo.HelloWorld"
        factory-bean="clientFactory" factory-method="create" />

    <bean id="clientFactory"
        class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
        <property name="serviceClass" value="com.demo.HelloWorld" />
        <property name="address" value="http://127.0.0.1:8080/test/HelloWorld" />
    </bean>

</beans>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics