2008-05-14 Daniel Kulp wrote: > On May 14, 2008, at 10:57 AM, Glen Mazza wrote: > > > 2008-05-14 Daniel Kulp wrote: > >>> In order for this to work, though, I think myImpl (the SIB) may > >> need > >>> to > >>> have more annotation values than if the SIB were wrapped within the > >>> WAR, > >>> correct? From what I can tell, the SIB's configuration is the sum > >>> of > >>> its @WebService annotation values[1] plus its jaxws:endpoint > >>> configuration in the cxf-servlet.xml[2], therefore to do > >>> Endpoint.publish(), anything otherwise in [2] would need to move to > >>> [1]. > >>> > >>> [1] http://www.jroller.com/gmazza/date/20080417#WFstep6 > >>> [2] http://www.jroller.com/gmazza/date/20080417#WFstep8 > >> > >> For the CXF stuff in [2], you only have the address and implementor > >> defined. Everything else is taken from the annotations. What's > >> interesting is that with that configuration, you are letting CXF > >> generate a new wsdl as there isn't a wsdlLocation specified anywhere > >> for CXF. Not a big deal, but I'm not sure if that's what you > >> intended since your metro configuration is specifying a wsdl. > >> > > > > Are you sure? I placed the WSDL file in the WEB-INF/wsdl > > folder--doesn't JSR-109 or the JAX-WS spec someplace indicate that if > > you place the WSDL file there, the JAX-WS implementation (here, > > CXFServlet) will look in that place by default? (isn't there > > something > > magical about that location, i.e., the wsdlLocation by default *is* > > WEB-INF/wsdl, no?) > > Well, no. For example, how would we know the filename of the wsdl > to even grab from that directory? >
Sorry to grill you here--I'm just trying to get this as correct as it can get. Just to clarify, then, while it may not pick up files from the WEB-INF/wsdl folder by default as I was thinking, that folder should still be the default location to look for WSDLs that are specified using wsdlLocation (i.e., if no directory structure is provided), correct? >From the JSR-109 Spec[1], Version 1.2 (April 28, 2006): Section 5.4: WSDL files are located relative to the root of the module and are typically located in the wsdl directory that is co-located with the module deployment descriptor or a subdirectory of it. Section 5.4.1: The wsdl directory is a well-known location that contains WSDL files and any relative content the WSDL files may reference. WSDL files and their relative references will be published during deployment. See sections 8.2.4 and 8.2.5 for more details. Section 8.2.4: "A Web Services for Java EE provider is required to provide a URL that maintains the referential integrity of the WSDL document the service-ref (or a javax.xml.ws.WebServiceRef annotated Web service reference) is bound to if the wsdl-file (wsdlLocation in WebServiceRef) element refers to a document located in the wsdl directory or one of its subdirectories." Section 8.2.5: "A Web Services for Java EE provider is required to support publishing a deployed WSDL document if the wsdlLocation element in the Web service annotations (described in section 5.3.2.1 and 5.3.2.2) or Web services deployment descriptor (webservices.xml) wsdl-file element refers to a WSDL file contained in the wsdl directory or subdirectory, as described in section 5.4.1. A vendor may support publication of WSDL files packaged in other locations, but these are considered non-portable." What I'm trying to say is that, in terms of WSDL resolution, there is indeed a difference between the WEB-INF/wsdl folder and the WEB-INF/banana folder, and CXF captures that difference? I may need to research this more. Thanks, Glen [1] http://jcp.org/aboutJava/communityprocess/mrel/jsr109/index.html
