JBossWS 3.1.2에서 HashMap을 인수로 사용하여 웹 서비스를 개발하려고합니다. 현재 사용중인 JBoss 버전과 함께 배포되는 JBossWS 버전을 사용하고 있습니다. wsprovide를 사용하여 WSDL을 생성하고 wsconsume을 사용하여 WS 클라이언트 스텁을 만듭니다.JBossWS 3.1.2에서 HashMap을 @WebParam으로 사용하는 방법
내 WebService에의 단순화 된 버전은 다음과 같습니다
는@WebService(targetNamespace = "http://localhost/ping", serviceName = "Ping")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class Ping {
@WebMethod
@WebResult(name="result")
public String ping(@WebParam(name="arguments") HashMap arguments) {
return "pong";
}
}
wsprovide에 의해 생성 된 WSDL에는 다음이 포함
이<types>
<xs:schema targetNamespace='http://localhost/ping' version='1.0' xmlns:tns='http://localhost/ping' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<xs:complexType name='hashMap'>
<xs:complexContent>
<xs:extension base='tns:abstractMap'>
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType abstract='true' name='abstractMap'>
<xs:sequence/>
</xs:complexType>
</xs:schema>
</types>
생성 된 클라이언트 코드는 빈 추상 클래스 AbstractMap.java 및 빈 클래스의 HashMap를 포함 . 다음을 생성 된 것으로 유사
내가 예상 한 것 WSDL은 :
<complexType>
<sequence>
<element name="key" type="anyType" />
<element name="value" type="anyType" />
</sequence>
</complexType>
또한 사용자 정의 클래스 (된 parameterMap)하지만, 그냥 같은 더 가지고와의 HashMap를 포장했습니다.
내가 볼 수없는 다음 단계가 있습니까? JBossWS를 사용하여 웹 서비스를 개발할 때의 한계점은 무엇입니까?