2009-10-12 6 views
1

저는 매우 간단한 함수가 있습니다. 각 기능에는 하나의 입력과 하나의 출력이 있습니다.JAXB가 WSDL 웹 서비스로 클래스를 생성했습니다.

OutputType function func(InputType); 

입출력 유형은 xsd 스키마에 정의되어 있으며 JAXB/XJC를 사용하여 Java 클래스로 생성됩니다. 이제는 Geronimo에서 실행되는 WSDL 웹 서비스로 이러한 기능을 노출하고자합니다.

Axis/WSDL2Java/Java2WSDL을 살펴 보았습니다. 내 기능이 만들어지는 것과 비슷한 방식으로 생각했습니다.

Java2WSDL을 사용하여 함수 및 입출력 유형에서 WSDL을 생성 할 수 있습니다. 다음 서버/클라이언트 측 바인딩을 생성하기 위해 일부 도구를 사용하십시오.

누구든지 더 많은 제안을 드릴 수 있습니까? 특히 xsd 스키마에서 함수의 입/출력을 정의했습니다.

대단히 감사합니다.

요약 : 하나 개의 입력과 하나 outout와


이 내가 지금 무슨이다 ....

많은 구현 기능.

공용 출력 유형 functionXXX (입력 유형) {....; 반환 산출; }

InputType과 OutputType은 이미 xsd 스키마에 정의되어 있으며 Jaxb/xjc가있는 Java 클래스로 바뀌 었습니다. 나는이 원하는 것은


....

빌드 웹 서비스는 이러한 기능을 실행합니다. 구현 된 기능의 코드를 건드리지 마십시오. 그리고 WSDL로

+0

일부 예제 또는 자습서는 매우 유용 할 것입니다. – elgcom

답변

2

을 사용하여 자습서를 찾고 here을 찾고 있습니다.

해당 문서는 계약 우선 접근법을 사용한다고 주장하지만 정확히 일치하지는 않습니다. SOAP 기반 서비스를 논의 할 때 계약은 먼저 설명자 (WSDL, XSD)를 생성하는 것을 의미합니다. 그런 다음 해당 설명자에서 코드 아티팩트를 생성합니다. 원저자의 단어 선택에 대한 토론에 대한 원본 블로그 게시물의 주석을 볼 수 있습니다.

그렇다면 계약 우선 접근 방식은 달성하려는 목표에 따라 많은 이점을 제공합니다. 이에 대한 정보는 Spring Web Services 자습서를 참조하십시오.

+0

상황은 이미 웹 서비스로 실행되지 않은 많은 비즈니스 로직 함수가 구현되어 있으며이를 노출하기 위해 "인터페이스"를 만들 예정입니다. 계약 첫 번째 접근법은 그러한 상황에 적합하지 않을 수 있습니다. 내가 맞습니까? 필자는 Annotation을 추가하기 위해 구현 된 코드를 수정하거나 변경하고 싶지 않습니다. 답장을 보내 주셔서 감사 드리며 CXF를 살펴 보겠습니다. – elgcom

1

기존 스키마가 있고 기존 JAXB2 바인딩이있는 경우 내 경험에 의하면 Spring WebServices은 SOAP 웹 서비스로 공개하는 가장 쉬운 방법입니다. 그 철학은 "계약 우선"입니다. 이것은 귀하가 가진 것과 정확히 같습니다. 추가 바인딩을 생성 할 필요가 없습니다. 스프링 MVC로 끝점을 연결하고 마샬 러를 연결하면됩니다. 스키마는 작업과 비슷한 것으로 보이는 것을 조사하여 자동으로 WSDL 작업으로 드러납니다 (기본 자동 검색이 제대로 작동하지 않는 경우이를 수행하는 방법을 알려줄 수 있음).

관련 문제