|
|
「Java SE 6完全攻略」第82回 JAX-WS その2先週は,JAX-WSを使用して簡単なWebサービスを作ってみました。とはいうものの,wsgenやwsimportで生成されたクラスに関しては説明を省略してしまいました。そこで,今週はJAX-WSで生成されるクラスなどについて解説していきます。 サーバサイド先週のサンプルでは,ほとんどWSDLを意識せずにWebサービスを公開,利用することができました。とはいうものの,WSDLがどうなっているのか,気になるところです。 先週のサンプルでは次のようなWebサービス実装クラスを作成しました。 @WebService
public class Hello {
@WebMethod
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
Webサービスはhttp://localhost:8080/helloで公開し,WSDLはhttp://localhost:8080/hello?wsdlでアクセスできます。このWSDLを以下に示します。 <?xml version="1.0" encoding="UTF-8"?>
<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net.
RI's version is JAX-WS RI 2.1.1 in JDK 6. -->
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net.
RI's version is JAX-WS RI 2.1.1 in JDK 6. -->
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://ws.javainthebox.net/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://ws.javainthebox.net/"
name="HelloService">
<types>
<xsd:schema>
<xsd:import namespace="http://ws.javainthebox.net/"
schemaLocation="http://localhost:8080/hello?xsd=1"/>
</xsd:schema>
</types>
<message name="sayHello">
<part name="parameters" element="tns:sayHello"/>
</message>
<message name="sayHelloResponse">
<part name="parameters" element="tns:sayHelloResponse"/>
</message>
<portType name="Hello">
<operation name="sayHello">
<input message="tns:sayHello"/>
<output message="tns:sayHelloResponse"/>
</operation>
</portType>
<binding name="HelloPortBinding" type="tns:Hello">
<soap:binding
transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="sayHello">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="HelloService">
<port name="HelloPort" binding="tns:HelloPortBinding">
<soap:address location="http://localhost:8080/hello"/>
</port>
</service>
</definitions>
連載新着連載目次へ >>
|