• spring 发布 Jax-Ws Service (二)


    Service

    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;
    import javax.jws.soap.SOAPBinding;
    import javax.jws.soap.SOAPBinding.Style;
    
    @WebService(targetNamespace="http://tempuri.org/")
    @SOAPBinding(style=Style.DOCUMENT)
    public interface MyService {
    
        @WebMethod
        String sayHiTo(String name);
    
        @WebResult(name="sayHelloResult")  
        String sayHello(@WebParam(name="name")String name);
        
    }

    Service Impl

    import javax.annotation.Resource;
    import javax.jws.WebService;
    import javax.servlet.http.HttpServletRequest;
    import javax.xml.ws.WebServiceContext;
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.handler.soap.SOAPMessageContext;
    
    
    @WebService(serviceName = "myService", targetNamespace = "http://tempuri.org/", endpointInterface = "cn.config.MyService")
    public class MyServiceImpl implements MyService {
    
        @Override
        public String sayHiTo(String name) {
            return name;
        }
    
        @Resource
        private WebServiceContext wsc;
    
        @Override
        public String sayHello(String name) {
            MessageContext ctx = wsc.getMessageContext();
            HttpServletRequest request = (HttpServletRequest) ctx.get(SOAPMessageContext.SERVLET_REQUEST);
            return request.getContentType();
        }
    
    }

    javaBean Configuration

    import org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter;

    @Configuration
    public class WebServiceConfig { @Bean public SimpleJaxWsServiceExporter simpleJaxWsServiceExporter() { SimpleJaxWsServiceExporter sjaxWsServiceExporter = new SimpleJaxWsServiceExporter(); sjaxWsServiceExporter.setBaseAddress("http://localhost:8081/services/"); return sjaxWsServiceExporter; } @Bean public MyServiceImpl myServiceImpl() { return new MyServiceImpl(); } }

    服务器:tomcat 端口号:8081
    wsdl:http://localhost:8081/services/helloservice?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错误。

  • 相关阅读:
    TCP/IP协议三次握手流程
    MySQL 单向同步复制
    源码编译安装MySQL(rhel6.5)
    Android Studio编译输出apk文件修改文件名
    Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
    android通知栏Notification点击,取消,清除响应事件
    Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸
    Android SharePreference 在主进程和次进程间共享数据不同步出错
    Android API 21 Toolbar Padding
    Android Studio UML 插件 PlantUML 使用语法
  • 原文地址:https://www.cnblogs.com/rinack/p/7903767.html
Copyright © 2020-2023  润新知