cxf spring 结合问题

前言,某些服务要发布成webService。webService 不精通,但是还知道一些工具包,庆幸以前用过xfire。ok 发布成功。哇嘎嘎,glassfish v2.2 测试有问题。郁闷。搞了半天不知道如何设置webService中方法的命名空间。哭了。哪就换吧。cxf。嘻嘻。一直想用这个就是没有时间。现在终于可以体验下了。
进入正文,记录下使用cxf 的一些问题。 使用的是cxf v2.3 + spring v3.0.5

使用cxf 发布webSerivce 服务。

老生常谈,几个配置文件的书写。

1.web.xml

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*.xml</param-value>
</context-param>
<!-- listener start -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- listener end -->
<!-- filter start -->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- filter end -->
<!-- Servlet start -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>

2.spring-webService.xml:

<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="helloWorldService"
implementor="com.bsoft.icp.bi6341.WebServiceImpl"
address="/helloWorldWebService" />

</beans>

3.注意对要发布成webService 服务的接口使用注解进行说明。顺道可以定义自己的命名空间。(测试。不使用注解会抛异常)
@WebService(targetNamespace="http://www.sun.com")

ok,服务器端发布成功,
输入: http://localhost:8080/appName/service/helloWorldWebService?wsdl 显示wsdl 文件。


客户端配置,也使用spring 配置:

<bean id="helloWorldWebService" class="com.test.IHelloworld" factory-bean="clientFactory"
factory-method="create" />

<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com.test.IHelloworld" />
<property name="address" value="${webservice.empi}" />
</bean>


客户端配置有几个问题需要注意下:
1.接口需要加 webService 注解。
2.如果服务器端和客户端的命名空间不一样,也会抛出异常。所以最好统一一下命名空键的问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CXF是一个开源的、用于构建和开发Web服务的框架,它提供了一套简单的API和工具,能够帮助开发人员创建和部署高性能和可扩展的Web服务。Spring Boot是一个开发框架,可以帮助开发者快速创建和配置独立的、生产级别的Spring应用程序。 CXFSpring Boot可以很好地结合使用来进行Web服务的开发和测试。 要进行CXF Spring Boot的测试,可以按照以下步骤进行: 1. 首先,在你的项目中添加CXFSpring Boot的依赖。可以在maven或者gradle的配置文件中添加相应的依赖。 2. 创建一个CXF的服务类,使用注解将其声明为一个Web服务。可以在类上添加`@WebService`注解,同时可以使用`@WebMethod`注解来声明Web服务中的方法。在方法上添加其他注解以定义方法的特性和行为。 3. 创建一个Spring Boot应用程序的主类,用来启动应用程序。可以在类上添加`@SpringBootApplication`等注解来进行配置。在主类中,可以将CXF的服务类通过`@Bean`注解进行注册。 4. 在CXF服务类中,可以添加一些业务逻辑来处理请求和响应。可以使用CXF提供的一些工具类来操作和处理数据。 5. 运行Spring Boot应用程序,可以使用Spring Boot内置的Tomcat服务器来启动应用程序。 6. 使用工具或浏览器来测试CXFWeb服务。可以使用SOAPUI或Postman等工具来发送请求和接收响应。在请求中可以包含方法名、参数和其他必要的信息。 7. 分析和检查返回的响应,确保Web服务按照预期工作。 通过上述步骤,就可以完成CXF Spring Boot的测试。可以通过模拟请求和检查响应来验证Web服务的正确性和性能。同时,可以使用其他测试工具和框架来进一步优化和完善测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值