2011-03-28 2 views
2

나는 스프링 WS 가이드의 5 장에서 예제를 확장하려고한다. 나는 Spring WS 1.5.9를 사용하고있다.스프링 WS에서 WSDL 용 XSD 가져 오기 변환

내가 추가 한 ...

<import namespace="http://myco.com/schemas/promotion/v1_2" 
    schemaLocation="http://localhost:8080/ordersService/Promotion_1_2.xsd" /> ... 

그러나 봄은 포트의 경우와 같이 가져 오기의 위치를 ​​변환 할 나타나지 않습니다./스프링 프레임 워크는 수입 몇 가지 방법을 변환 할 수 있습니다 : "8080 localhost"를

나는 WSDL 생성합니까

<bean id="orders" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition"> 
    <property name="schema" ref="schema" /> 
    <property name="portTypeName" value="Orders" /> 
    <property name="locationUri" value="http://localhost:8080/ordersService/" /> 

같은 정의 ??? 그래서 내 회사 웹 사이트에 여전히 보여줍니다

업데이트 : 좀 더 배경 ....

우리는 우리의 응답 스키마 객체를 구축하기 위해 받는다는 JAXB2 플러그인과 같은 XSD를 사용합니다. 그것들은 모두 훌륭하게 작동합니다. 그리고 우리는 카탈로그 해석기를 사용하여 포함 된 JAR 파일에서 추가 비즈니스 도메인 XSD를 실제로 찾습니다. 우리는 비즈니스 도메인을 설명하는 100 개의 XSD를 보유하고 있습니다.

그래서 나는 그것을 깨뜨리지 않으려 고합니다.

내가보기를 원하는 것은보다 자세한 예입니다. JaxB2가 사용되는 예와 XSD -> WSDL 기능.

XSD를 리팩터링해야합니까? XSD가 아닌 WSDL을 사용해야합니까? XSD가 올바르게 작동하도록하려면 어떻게해야합니까? "classpath : My_file.xsd"를 사용합니까? schemaCollection에 100 개의 XSD를 나열해야합니까?

봄용 문서는 훌륭하지만 실용적인 예제가 필요합니다.

+0

봄 WS 2가 종료되었습니다. 이제 실제로 사용하고 있어야합니다. – skaffman

+1

언젠가. 이것은 모양으로 채찍하려고하는 기존의 개발입니다. 그래서 2.0으로 이동할 수 있습니다. – grbonk

답변

2

우리가 해결할 솔루션에 대한 세부 정보를 추가하고 싶습니다. 우리는 Spring WS 2x로 이전했습니다. 여러 스키마를 사용하려면 여기에 트릭/키는 말한다 섹션에 있었다 업데이트 된 링크 ...

http://static.springsource.org/spring-ws/site/reference/html/server.html#server-automatic-wsdl-exposure

는 "...의 어느으로 포함 또는 수입, 당신은 풍경을 데려 가고 싶다는 것입니다 XMLSchema "

그래서 우리 프로젝트에이를 추가하는 최종 답이되었습니다.

<dependency> 
    <groupId>org.apache.ws.commons.schema</groupId> 
    <artifactId>XmlSchema</artifactId> 
    <version>1.4.7</version> 
</dependency> 

이제 스프링은 클래스 패스 해결이 가능하도록 추가 기능을 가능하게합니다.

+0

+1 비슷한 점이 있습니다. org.apache.ws.xmlschema : xmlschema-core v2.0을 추가했습니다.2 – codebox

+0

Java 구성을 사용할 때'commonsXsdSchemaCollection.setInline (true);'도 추가해야했습니다. – Timo

1

스프링 -WS는 자동으로 모든 스키마 요소를 WSDL에 인라인하여 단일 문서로 표시 할 수 있습니다. 이렇게하면 액세스 할 수없는 <import> 개의 URL 문제를 피할 수 있습니다.

CommonsXsdSchemaCollection에 대해 이야기하는 스프링 WS 설명서의 the section을 참조하십시오.

관련 문제