@UsesJAXBContext annotation in jax-ws에 대해 질문하고 싶습니다. 나는 그것을 클라이언트 측에서 작동 시키려고 노력하지만 나는 아마 뭔가를 놓친다. 내가 작업과 웹 서비스를 가지고커스텀 JAXBContext 설정 방법
: 내가 QueueService 및 대기열 (포트) ... 및 기타 물건을 생성 한 클라이언트 측에
@WebMethod(operationName = "putToQueue")
public boolean put(@WebParam(name = "queueName") String queueName, @WebParam(name = "element") Object element) {
return queues.get(queueName).offer(element);
}
... [respones 요청 여기 내 경우입니다. 이 경우 관련 없음.] 사용자가 큐에 넣을 수있는 개체를 정의 할 수있게하려고합니다. 그러나 조작을 호출하려면 put (...) JAXBContext에 바인드 객체 (전송하려고 함)가 필요합니다. 그걸로 할 수있는 @ XmlSeeAlso 생성 된 큐 스텁의 상단에 [나는 이것을 시도하고 그것을 작동]. 그럼에도 불구하고 런타임시 객체를 바인딩하는 데 도움이되는보다 일반적인 솔루션이 필요합니다. @QueueMessage 주석 및 ClientJAXBContextFactory을 만들고이를 생성 할 때 표시된 클래스를 컨텍스트에 추가 할 수 있다고 생각했습니다.
public class ClientJAXBContextFactory implements JAXBContextFactory {
@Override
public JAXBRIContext createJAXBContext(SEIModel seim, List<Class> classes, List<TypeReference> references) throws JAXBException {
Reflections reflections = new Reflections("");
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(QueueMessage.class);
classes.addAll(annotated);
return JAXBContextFactory.DEFAULT.createJAXBContext(seim, classes, references);
}
}
다음 제가
생성 큐 위에 @UsesJAXBContext 사용 시도.@WebService(name = "Queue")
@UsesJAXBContext(ClientJAXBContextFactory.class)
public interface Queue {
...
}
그러나 createJAXBContext (...)가 호출되지 않고, JAX-WS는 단지 자신의 JAXBContextImpl을 만들 수 있습니다.
은 내가 읽고 :
http://weblogs.java.net/blog/jitu/archive/2008/08/control_of_jaxb.html
http://www.techques.com/question/1-5627173/Specify-JAXB-Packages-in-SLSB-and-JAX-WS
와 유래에 대한 몇 가지 질문입니다. 나는 조언에 감사 할 것이다. 내 질문에 제시된 아이디어를 구현할 수 있습니까?
또한 서버쪽에 추가 할 수 있습니다 ... @UsesJAXBContext 작품. 그러나 클라이언트 측에서 작동하게 만드는 것이 중요합니다.