OTA 표준 http://www.opentravel.org/OTA/2003/05을 기반으로하는 파트너가 WSDL을 제공합니다.클래스 java.util.Map public이 아니거나 WebService에서 자동 생성 클래스로 인스턴스화를 허용하지 않습니다.
Java 클래스를 자동 생성하기 위해 jaxws-maven-plugin을 사용하여 Java 클라이언트를 생성했습니다. 포트는 메소드를 제공하는 ServiceClient를 통해 사용할 수 있습니다. 여기까지, 전혀 문제 없습니다.
테스트 목적으로 WebService의 모의 구현을 만들어야하는 경우 문제가 발생합니다.
나는 다른 웹 서비스와 이런 짓을했는데 오류를하지 않았지만, 인터페이스의 메소드를 구현할 때 나는 다음과 같은 오류가이 하나 :
웹 메소드 문제 : 클래스 java.util의. 공공없는지도 또는 허용하지 않습니다
그래서 내 인터페이스는 다음과 같습니다 인스턴스 :
@WebService(name = "DistributorsV1Port", targetNamespace = "http://www.opentravel.org/OTA/2003/05")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@XmlSeeAlso({
ObjectFactory.class
})
public interface ServiceMock extends ServiceDispatcher<Object, Object> {
@WebMethod(operationName = "GetMultiAvailability")
@WebResult(name = "OTA_HotelAvailRS", targetNamespace = "http://www.opentravel.org/OTA/2003/05", partName = "response")
public OTAHotelAvailRS getMultiAvailability(
@WebParam(name = "OTA_HotelAvailRQ", targetNamespace = "http://www.opentravel.org/OTA/2003/05", partName = "request")
OTAHotelAvailRQ request);
다음과 같이 D 구현은 다음과 같습니다
@WebService(name = "DistributorsV1Port", targetNamespace = "http://www.opentravel.org/OTA/2003/05")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@XmlSeeAlso({
ObjectFactory.class
})
public class ServiceMockImpl extends ServiceDispatcherImpl<Object, Object> implements ServiceMock {
@Override
public OTAHotelAvailRS getMultiAvailability(OTAHotelAvailRQ request) {
return (OTAHotelAvailRS) dispatch(request);
}
}
그래서 내가 이해의 OTAHotelAvailRQ의 특성 중 하나는지도입니다, 그리고 @WebService지도를 반환 좋아하지 않는다. 하지만이 클래스는 jax-ws 플러그인에 의해 자동 생성되었으므로 조금 잃어 버렸습니다. 더 많은 코드가 도움이
@XmlAnyAttribute
private Map<QName, String> otherAttributes = new HashMap();
경우, 당신이보고 싶은 클래스를 요청하시기 바랍니다 :
이
는 속성입니다.
지도는 인터페이스이므로 인스턴스화 할 방법이 없습니다. 그것을 getclass/setter에 적용 할 필요가있는 클래스 HashMap otherAttributes = new HashMap()'을 만들겠습니다. –
StanislavL
그래도이 클래스는 jaxws-maven-plugin에 의해 자동 생성 된 클래스입니다. 왜 ws를 통해 보낼 수없는 클래스를 생성합니까? –
보낼 수 있습니다. 나는지도가 인스턴스화되어야 할 때 문제가 파싱되고 있다고 생각한다. 예를 들어 WS 용도 일 수 있습니다. LinkedHashMap을 유지하여 순서를 유지합니다. – StanislavL