2009-04-07 2 views
0

현재 매우 큰 공급 업체 제공 WSDL 스키마로 작업하고 있습니다. 바인딩 스타일은 RPC입니다. 내가 아는 한 Axis 1.x는 RPC WSDL 정의를 지원하는 유일한 Java 도구입니다. 내가 틀렸다면 정정 해주세요. 자바의 64 K 한계보다 훨씬 더 큰 -64KB보다 큰 정적 블록을 만드는 WSDL2Java를 해결하는 방법은 무엇입니까?

WSDL2Java가이 서비스 이름을 크기의 정적 intialisation 블록 1.3MB있다 Skeleton.java 파일을 생성합니다.

인터페이스의 정의를 변경할 수 없다는 점을 감안할 때 어떻게 진행해야한다고 생각하십니까? 내가 그들을 보는 바와 같이

우리의 옵션은 다음과 같습니다

  • 브레이크까지 생성 된 정적 블록
  • 브레이크 업 (즉 인터페이스를 변경하지 않고 가능성이 있는지 확실하지 않습니다) WSDL을
  • 패치 축 WSDL2Java의 코드

다른 아이디어?

+0

요, 내 옛 행동을 다시 방문하십시오. 어쨌든, 우리는 벤더에게 그들의 엉터리 SOAP 툴링을 수정할 수 없기 때문에 생성 된 Java 클래스의 정적 초기화 블록을 더 작은 덩어리로 파싱하는 Perl 스크립트를 작성했습니다. 미친 것 같은. –

답변

1

RPC의 WSDL을 문서로 변환하는 방법에 대한 지침을 제공하는 article을 참조하십시오. 먼저 시도하는 것이 좋습니다.

또한 RPC/인코딩 된 WSDL (WS-I을 준수하지 않음)이있을 가능성이 큽니다. JAXWS는 RPC/리터럴 만 지원합니다. 따라서 CXF 나 Axis2와 같은 모든 프레임 워크가이를 지원합니다. 따라서 WSDL을 RPC/리터럴로 변환 할 수도 있습니다.

CXF는 당신을 위해 일할 수있는 tool을 가지고 있습니다.

어쨌든 WSDL을 최신 양식으로 변환하는 것이 좋습니다. 이렇게하면 서버 및 클라이언트 구현 모두를 더 쉽게 수행 할 수 있습니다. 나는 그것이 Axis1과 싸울 가치가 있다고 생각하지 않습니다. 심지어 SOAP 메시지를 수동으로 작성하고 파싱하는 것이 더 쉬울 수도 있습니다.

1

wsdl이 자주 변경되는 경우 wsdl2java 코드를 패치 할 가치가 있습니다. 그렇지 않으면 첫 번째 옵션으로 이동합니다.

관련 문제