`
wdhdd889
  • 浏览: 150111 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cxf+spring

阅读更多

费话少话  实例如下(包自己导自己建):

 服务端:

   1  服务接口

         @WebService
public interface HelloWorld {
 public String sayHello(String text);
 }
  

2 服务实现类

@WebService(endpointInterface = "org.shenhongwei.dao.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

 /*
  * (non-Javadoc)
  *
  * @see org.shenhongwei.dao.HelloWorld#sayHello(java.lang.String)
  */
 public String sayHello(String text) {
  return "Hello" + text;

 }

}

 

  3 spring配置文件beans.xml 这里放置于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-2.0.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" />
 <bean id="hello" class="org.shenhongwei.dao.impl.HelloWorldImpl" />
 <jaxws:endpoint id="helloWorld" implementor="#hello"
  address="/HelloWorld">
 </jaxws:endpoint>
     
</beans>

 

 4 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>/*</url-pattern>

 </servlet-mapping>

 

部署到tomcat下 启动服务 访问http://localhost:8050/cxf_spring/HelloWorld?wsdl

 

 

客户端

 

 1 接口类

@WebService
public interface HelloWorld {
 public String sayHello(String text);
}

 

2 spring  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" />

 <bean id="client" class="org.shenhongwei.inter.HelloWorld"
  factory-bean="clientFactory" factory-method="create">
 </bean>
 <bean id="clientFactory"
  class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
  <property name="serviceClass"
   value="org.shenhongwei.inter.HelloWorld">
  </property>
  <property name="address"
   value="http://localhost:8050/cxf_spring/HelloWorld?wsdl" />
 </bean>


</beans>

 

 

3 测试类Test

public class Test {
 public static void main(String[] args) {
  ApplicationContext ctx = new ClassPathXmlApplicationContext(

  "beans.xml");

  HelloWorld client = (HelloWorld) ctx.getBean("client");

  String result = client.sayHello("你好!");

  System.out.println(result);

 }
}

 

OK

 

 也可以写成非依赖注入式访问Test

   public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  JaxWsProxyFactoryBean j=new JaxWsProxyFactoryBean();
  
  j.setAddress("http://localhost:8050/cxf_spring/HelloWorld?wsdl");
  j.setServiceClass(org.shenhongwei.dao.HelloWorld.class);
  HelloWorld hw=(HelloWorld) j.create();
  System.out.println(hw.sayHello("ppp"));
  // TODO Auto-generated method stub

 }

}

 

  

分享到:
评论
2 楼 wdhdd889 2010-10-12  
用uri访问
可以有两种方式
1 直接使用url访问服务
2 生成本地服务代码
1 楼 Javaxiaobao 2010-09-07  
貌似是类似远程调用方法,xml数据是怎么传输呢?

相关推荐

Global site tag (gtag.js) - Google Analytics