[WebService]之JWS_1

创建JWS项目步骤:

1:创建接口

2:创建实现类

3:开启服务

 

1:编写接口

@WebService
public interface IMyService {
    
    public int add(int a,int b);
    
    public int minus(int a,int b);
}

  

1:编写接口实现类

@WebService(endpointInterface = "org.wnj.service.IMyService")  //指定接口包名类包
public class MyServiceImpl implements IMyService {
    
    /** {@inheritDoc} */
    
    @Override
    public int add(int a, int b) {
        System.out.println(a + "+" + b + "=" + (a + b));
        return a + b;
    }
    
    /** {@inheritDoc} */
    
    @Override
    public int minus(int a, int b) {
        System.out.println(a + "-" + b + "=" + (a - b));
        return a - b;
    }
    
}

  

 

//3:启动服务

public class MyServer {
    
    public static void main(String[] args) {
        String address = "http://localhost:8888/ns";  
        Endpoint.publish(address, new MyServiceImpl());  
    }
}

 

 //4:编写客户端

 

 /** <一句话功能简述>
     * <功能详细描述>
     * @param args
     */
    public static void main(String[] args) {

        try {
            //创建访问wsdl服务的地址
            URL url = new URL("http://localhost:8888/ns?wsdl");
            //通过QName指明服务的具体信息
            QName sname = new QName("http://service.wnj.org/","MyServiceImplService");
            //创建服务
            Service service = Service.create(url, sname);
            //实现接口(最大的问题需要知道接口)
            IMyService ms = service.getPort(IMyService.class);
            System.out.println(ms.add(1, 2));
        }
        catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }

  

 

 

通过浏览器访问 : http://localhost:8888/ns?wsdl

 

 

 

 

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<!--
 Published by JAX-WS RI at http://jax-ws.dev.java.net. RI‘s version is JAX-WS RI 2.1.6 in JDK 6. 
-->
<!--
 Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI‘s version is JAX-WS RI 2.1.6 in JDK 6. 
-->
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://service.wnj.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://service.wnj.org/" name="MyServiceImplService">
<types>
<xsd:schema>
<xsd:import namespace="http://service.wnj.org/" schemaLocation="http://localhost:8888/ns?xsd=1"/>
</xsd:schema>
</types>
<message name="add">
<part name="parameters" element="tns:add"/>
</message>
<message name="addResponse">
<part name="parameters" element="tns:addResponse"/>
</message>
<message name="minus">
<part name="parameters" element="tns:minus"/>
</message>
<message name="minusResponse">
<part name="parameters" element="tns:minusResponse"/>
</message>
<portType name="IMyService">
<operation name="add">
<input message="tns:add"/>
<output message="tns:addResponse"/>
</operation>
<operation name="minus">
<input message="tns:minus"/>
<output message="tns:minusResponse"/>
</operation>
</portType>
<binding name="MyServiceImplPortBinding" type="tns:IMyService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="add">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="minus">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="MyServiceImplService">
<port name="MyServiceImplPort" binding="tns:MyServiceImplPortBinding">
<soap:address location="http://localhost:8888/ns"/>
</port>
</service>
</definitions>

  

 

 

WSDL标签解释

type:用来定义的传输类型,用SOAP(Simple Object Access Protool协议指定参数

mesage:用来传输SOAP消息

portType:指定服务器的接口,并且通过operation绑定方法名及相应的in,out的消息,其中in表示入参,out表示出参

binding:指定传输消息所使用的格式

service:指定服务所发布的信息

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。