Spring 配置
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:org/codehaus/xfire/spring/xfire.xml
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Xfire Web Service -->
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
Java Resources - src - META-INF - xfire - services.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>myService</name>
<serviceClass>com.sunzhongwei.controller.XfireServiceController</serviceClass>
</service>
</beans>
实现
package com.sunzhongwei.controller;
import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;
import org.codehaus.xfire.MessageContext;
@WebService
public class XfireServiceController {
@WebMethod(operationName = "sayHi", action = "urn:sayHi")
@WebResult(name = "myAnswer")
public String sayHi(MessageContext ctx)
{
return "Hello world!";
}
}
参数说明
WebService
- name: web service name, 如果在 services.xml 中配置了 service name, 这里就不需要配置啦。等同于 wsdl 文件中的 wsdl:portType
- targetNamespace
- serviceName: 等同于 wsdl 文件中的 wsdl:service
- wsdlLocation
- endpointInterface
WebMethod
- operationName: 如果不指定,则取方法名为 operation name。建议不填,保持与方法同名。
- action
WebParam operation 输入参数的映射关系,同样用于生成 wsdl 文件中的 elements。
- name
- targetNamespace
- mode
- header
portType 的作用
<portType name="Hello_PortType">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
可以认为 portType 是用来声明哪几个 request, response 消息属于同一个接口的。只要前缀一致,就能被自动划分到同一个 operation 下,当然前提是必须属于同一个 portType。
a portType can combine one request and one response message into a single request/response operation. This is most commonly used in SOAP services. A portType can define multiple operations.
JWS
Java Web Service
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式