Write jax-ws web service and generate WSDL without XSD

后端 未结 3 1101
我在风中等你
我在风中等你 2021-02-14 02:57

I wrote a simple JAX-WS web service for tomcat application server on java.

I have one interface and on implementation class:
interface

@We         


        
3条回答
  •  面向向阳花
    2021-02-14 03:51

    It is actually not possible to use inlineSchemas with the runtime WSDL generator. I debugged the WSDL generation and found this line in the EndpointFactory, where the inlineSchemas feature (which actually is present in the wsgen tool) is just set to false:

        /**
         * Generates the WSDL and XML Schema for the endpoint if necessary
         * It generates WSDL only for SOAP1.1, and for XSOAP1.2 bindings
         */
        private static SDDocumentImpl generateWSDL(WSBinding binding, AbstractSEIModelImpl seiModel, Collection docs,
                                                   Container container, Class implType) {
            // [...]
            WSDLGenInfo wsdlGenInfo = new WSDLGenInfo(); 
            // [...]
            wsdlGenInfo.setInlineSchemas(false);
            // [...]
            seiModel.getDatabinding().generateWSDL(wsdlGenInfo);
            // [...]
        }
    

    https://github.com/eclipse-ee4j/metro-jax-ws/blob/f37dae6bdfd03bafdad63ed05b27dbfc3c38af1b/jaxws-ri/rt/src/main/java/com/sun/xml/ws/server/EndpointFactory.java#L658

    There is also an open issue for JAX-WS to change this (but I guess there is not much hope for changes in JAX-WS anymore). https://github.com/eclipse-ee4j/metro-jax-ws/issues/49

提交回复
热议问题