WebService在Spring环境下配置

项目使用maven构建,开发工具IntelliJ IDEA

WebService配置:

pom.xml中加入:



    org.jvnet.jax-ws-commons.spring
    jaxws-spring
    1.9
    
        
            org.springframework
            spring
        
    


    com.sun.istack
    istack-commons-runtime
    2.2.1

web.xml中加入:

    
        springWsServlet
        com.sun.xml.ws.transport.http.servlet.WSSpringServlet
    
    
        springWsServlet
        
        /services/*
    

在项目主目录下增加webservice文件夹存放你编写的webservice接口

新增一个webservice接口如下:

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface WebServer {
    @WebMethod(operationName = "saySomething") //表明这是一个发布出webservice方法,方法名为设置的operationName
    String saySomething(@WebParam(name = "name") String name);
}

下面编写接口的实现类

@WebService(endpointInterface = "org.ihsusta.server.webservice.WebServer", // webservice接口类 名称
        serviceName = "webServerService", // 自定义 serviceName
        portName = "webServerPort", // 自定义 portName
        targetNamespace = "http://webservice.server.ihsusta.org/") // 自定义 namespace
@Component("webServerImpl") // 增加注解 注入spring容器中
public class WebServerImpl implements WebServer {
    public String saySomething(String name) {
        return "Hello " + name + "!";
    }
}

增加spring 配置文件 spring-webservice.xml,




    
    
    
    
        
            
            
        
    

配置到此基本完成

启动项目后

浏览器输入:http://localhost:8080/webserver/services/WebServer 即可看到你发布出的wsdl

WebService在Spring环境下配置_第1张图片

接下来 试试再webservice中注入spring容器中的其他bean

编写一个service接口及其实现类

public interface IndexService {

    void hello(String name);
}
@Service
public class IndexServiceImpl implements IndexService {

    public void hello(String name) {
        System.out.println("I am IndexService, hello " + name + " !");
    }
}

再将之前编写WebServer进行修改

@WebService(endpointInterface = "org.ihsusta.server.webservice.WebServer", // webservice接口类 名称
        serviceName = "webServerService", // 自定义 serviceName
        portName = "webServerPort", // 自定义 portName
        targetNamespace = "http://webservice.server.ihsusta.org/") // 自定义 namespace
@Component("webServerImpl") // 增加注解 注入spring容器中
public class WebServerImpl implements WebServer {

    @Resource
    private IndexService service;  // add service

    public String saySomething(String name) {
        service.hello(name); // call service hello method
        return "Hello " + name + "!";
    }
}

对该webservice进行调用,控制台出现

WebService在Spring环境下配置_第2张图片

说明service 已成功注入WebServer中

源码地址:https://github.com/atsushinee/webserver

你可能感兴趣的:(JAVA)