2010-01-26 1 views
10

@WebService 주석을 사용하고 Maven 빌드 대상에 의해 트리거 된 wsgen을 실행하여 Java 클래스에서 WSDL을 생성합니다.wsgen 및 maven을 사용하여 Java에서 WSDL을 생성 할 때 메서드 매개 변수 이름을 사용합니까?

문제점은 생성 된 WSDL이 코드에서 매개 변수 이름을 사용하는 대신 arg0, ar1, arg2 등으로 웹 서비스 조작에 대한 매개 변수를 정의한다는 것입니다. 이 이름들은 전달해야 할 것을 알아 내려고 시도하는 서비스의 고객에게 도움이되지 않습니다.

wsgen이 메소드에서 매개 변수 이름을 가져 와서 사용하도록 지시 할 수 있습니까? 메서드 또는 wsgen에 전송 된 매개 변수?

감사합니다.

답변

15

@WebParam 주석을 사용하십시오.

@WebMethod 
public void thisMethodHasAWebParam(@WebParam(name="param1") String arg1) { 
} 
+0

나는 쉬운 방법이 있어야한다는 것을 알고있었습니다. 정말 고마워! – Vinnie

+3

그거 작동합니다. 그러나 이것은 끔찍하게 중복되지 않습니까? 나는 바이트 코드의 메소드 서명이 매개 변수 이름을 보존하지 않지만 도구가 소스 코드를 볼 수는없는 것을 알고 있습니까? – Thilo

+1

코드를 생성 할 때 WSDL 파일 URL을 사용하므로 소스 코드를 어떻게 볼 수 있습니다. 그리고 WSDL 파일은 런타임에 생성됩니다. –