Eclipse를 사용하여 제 3 자 wsdl이 제공된 Java 클라이언트 코드 스텁을 생성했습니다. 클라이언트는 훌륭하게 작동하고, 내가해야 할 일을 웹 서비스에 액세스 할 수 있습니다.x2를 axis2에서 생성 된 java 객체로 비 직렬화하는 방법
이제 웹 서비스에 연결할 필요없이 실행할 수있는 단위 테스트를 작성하고 싶습니다. x2 파일을 자바 클라이언트 스텁 코드의 자바 객체 중 하나로 역 직렬화하기 위해 axis2 스택 내에서 어떤 메커니즘을 사용할 수 있습니까?
예를 들어, 클라이언트 스텁 코드의 클래스 중 하나는 "Contact"입니다. 대개 비누 요청에서 발견되는 XML을 모방 한 xml 파일이 있다고 가정 해보십시오. 어떻게 그것을 자바 연락처 개체로 역 직렬화 할 수 있습니까?
이전에 XMLBeans를 사용해 왔지만, 자바 클라이언트가 이미이 비 직렬화를 어딘가에서하고있는 것처럼 보이기 때문에 쉬운 방법이 있기를 바랍니까? 어쩌면 축 2에는 XML의 청크를 가져 와서 Java 객체를 반환하는 메소드가 있습니까?
는 UPDATE :
이 시도 :
String packageName = Contact.class.getPackage().getName();
JAXBContext jc = JAXBContext.newInstance(packageName);
나는이 얻을 : 다음
java.lang.AssertionError: javax.xml.bind.JAXBException: "com.sforce.soap._2006._04.metadata" doesnt contain ObjectFactory.class or jaxb.index
,이 시도 :
Contact c = new Contact();
JAXBContext jc = JAXBContext.newInstance(c.getClass());
을하지만 그때 나는 예외가 그 수업 중 하나가 tact 클래스 사용 does not have a no-arq default constructor
나는 이것이 쉽고 빠를 것이라고 기대했지만, 축 2를 완전히 깨우고 jaxb를 사용하는 방법을 알기 전까지는 수동으로 XML을 파싱 할 것입니다.
팁 주셔서 대단히 감사드립니다. 불행히도, 그것은 내가 기대했던 것보다 더 힘들다는 것이 증명되었습니다. 클래스 패스에 JAXBUtils가 표시되지 않습니다. 내가 시도한 것에 대한 업데이트 된 질문을 참조하십시오. – Upgradingdave