spring 发布 Jax-Ws Service

Posted 如若

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 发布 Jax-Ws Service 相关的知识,希望对你有一定的参考价值。

1、maven依赖:

<dependency>
    <groupId>org.springframework.ws</groupId>
    <artifactId>spring-ws-core</artifactId>
    <version>2.1.4.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.jdom</groupId>
    <artifactId>jdom</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>jaxen</groupId>
    <artifactId>jaxen</artifactId>
    <version>1.1.6</version>
</dependency>

2、编写需要发布的JavaBean

import javax.jws.WebMethod;
import javax.jws.WebService;

import org.springframework.stereotype.Component;

@Component
@WebService(serviceName = "myService")
public class HolidayEndpoint {

    @WebMethod
    public String say(String name) {
        return "hello,"+name;
    }

}

3、配置 web.xml:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:beans.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

4、Spring的配置文件beans.xml

<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">  
    <property name="baseAddress" value="http://localhost:8081/services/"/>  
</bean>

服务器:tomcat 端口号:8081
wsdl:http://localhost:8081/services/myService?wsdl

说明及注意

(1)、通过http://localhost:8081/services/myService?wsdl 访问webservice部署描述符 
还有自动生成的xsd:http://localhost:8081/services/myService?xsd=1 。
(2)、@SOAPBinding(parameterStyle=ParameterStyle.WRAPPED)
必须添加,否则会报错;另外,如果发布的方法只有一个参数可以使用@SOAPBinding(parameterStyle=ParameterStyle.BARE)。
(3)、@WebService(serviceName = "myService") 服务名称与Spring配置的bean一致。
(4)、webservice的端口设置不要与服务器一样,这一点非常重要否则服务器应用与webservice服务冲突会产生HTTP404错误。

以上是关于spring 发布 Jax-Ws Service 的主要内容,如果未能解决你的问题,请参考以下文章

Jax-ws 开发webService ,并使用spring注入service类中遇到 空指针

MyEclipse JAX-WS Web Service

tomcat发布web service教程

Jax-WS WebService实现

使用wsimport和JAX-WS调用Web Service接口

spring配置jax-ws