JAX-WS(四)webservice転送オブジェクト
2964 ワード
Webserviceを使用してオブジェクトを渡す
インタフェース
実装クラス
wsdlでのオブジェクト転送
インタフェース
package com.hqh.service;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService
public interface IMyService {
@WebResult(name="plusResult")
public int plus(@WebParam(name="a")int a,@WebParam(name="b")int b);
@WebResult(name="minusResult")
public int minus(@WebParam(name="a")int a,@WebParam(name="b")int b);
// User
@WebResult(name="User")
public User getUser(@WebParam(name="username")String uname,@WebParam(name="age")int age);
}
実装クラス
package com.hqh.service;
import javax.jws.WebService;
@WebService(endpointInterface="com.hqh.service.IMyService")
//endpointInterface
public class MyServiceImpl implements IMyService {
@Override
public int plus(int a, int b) {
System.out.println("MyServiceImpl.plus()");
return a+b;
}
@Override
public int minus(int a, int b) {
System.out.println("MyServiceImpl.minus()");
return a-b;
}
@Override
public User getUser(String uname, int age) {
User user = new User(uname,age);
user.setId(100);
return user;
}
}
wsdlでのオブジェクト転送
<?xml version="1.0"?>
<xs:schema version="1.0" targetNamespace="http://service.hqh.com/">
<xs:element name="getUser" type="tns:getUser"/>
<xs:element name="getUserResponse" type="tns:getUserResponse"/>
<!-- -->
<xs:complexType name="getUser">
<xs:sequence>
<xs:element name="username" type="xs:string" minOccurs="0"/>
<xs:element name="age" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<!-- -->
<xs:complexType name="getUserResponse">
<xs:sequence>
<!-- -->
<xs:element name="User" type="tns:user" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- :User -->
<xs:complexType name="user">
<xs:sequence>
<xs:element name="age" type="xs:int"/>
<xs:element name="id" type="xs:int"/>
<xs:element name="uname" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>