JBoss 5.1.0GA를 사용하여 WebService와 Client를 개발 중입니다. JBossWs 스택에는 이미 다운로드 한 바이너리가 미리 설치되어 있으며 JBossWs 3.1.2GA를 사용하고 있습니다.Complex 객체를 인자로 사용하고 리턴 타입을 사용하여 JBossWS로 웹 서비스와 클라이언트 만들기
이 설치를 사용하여 웹 서비스를 개발했으며 클라이언트도 성공적으로 만들었습니다. 이것이 내가 가진 것입니다.
pojo 웹 서비스가 war 파일로 배포되었습니다. 여기
@WebService
public class Service{
@WebMethod
public CompleObj getConfiguration() {
CompleObj oConf = new CompleObj();
for (int i = 0; i < 10; i++) {
NestObj oInst = new BOpRepoInstance("Val1", "Val2", "Val3", "Val4");
oConf.addRepoInstance(oInst);
}
return oConf;
}
}
,
CompleObj => 유형 NestObj 목록을 갖는 복합 오브젝트이다. 그것의 getter/setters, toString 및 다른 메소드.
NextObj =>에는 유형 문자열의 4 가지 변수가 있습니다. getter/setter, toString, hashCode, equals 및 다른 메소드.
이 웹 서비스가 성공적으로 배포되었습니다.
나중에 WSDL 문서를 사용하여 웹 서비스 클라이언트를 생성하기 위해 Eclipse 마법사를 사용하여 클라이언트를 작성했습니다. 또한 webservice를 호출하고 반환 값을 가져올 샘플 클라이언트 파일을 만들었습니다. 이것은 또한 매력처럼 작동했습니다.
내 문제는 클라이언트가 생성 한 스텁을 Eclipse가 CompleObj 및 NestObj 클래스를 생성 할 때 발생합니다. 이러한 클래스에는 변수와 getter/setter 만 있습니다 (WSDL doc에서 생성되므로이 의미가 있습니다). 따라서 toString, hasCode, equals 등 클라이언트 측에서도 사용하고 싶은 다른 많은 메소드가 느슨합니다.
이제 어떻게 WebService 프로젝트에 정의 된 실제 클래스 파일을 직접 사용하고 클라이언트가 생성 된 클래스 파일을 사용하지 않도록 할 수 있습니까? 클래스 파일을 Client 프로젝트의 .jar 바이너리로 제공 할 수 있습니다. 실제로이 작업을 수행하는 방법은 없습니다.
또 다른 질문은 웹 서비스 위치가 스텁에 직접 포함되어 있습니다. 호출 코드에 인수의 일부로 webservice 위치가 전달되도록하려면 어떻게해야합니까? 당신이 서비스를 호출 때 그냥 자신의 클래스의 버전을 deserilized되지 홀더를 배치하고있는 클라이언트 측에서 생성되는
감사합니다. 위의 요점을 이해합니다.보다 정확한 내용을 원한다면 Example 웹 서비스와 클라이언트 생성을 [here] (https://community.jboss.org/wiki/JBossWS-QuickStart)에서 설명한대로 취할 수 있습니다. 이제 Customer.java 및 Discount * .java와 같은 사용자 정의 데이터 유형을 jar 파일로 패키징하는 경우 wsconsume이 새 파일 만들기 대신 해당 파일을 사용하도록하려면 어떻게해야합니까? 현재 내가하는 일은 Source가 생성 된 후에 생성 된 데이터 형식을 삭제 한 다음 Jar 파일에서 사용할 수있는 데이터 유형을 가리 키도록 가져 오기를 업데이트하는 것입니다. –
제공된 유틸리티 "wsconsume"의 변경과 관련하여 wsconsume 구현을 살펴볼 필요가 있습니다. – Murugesh