Some more followup:

It seems likely that the bloating of the JAXB context with extraneous
classes during the initalialization of my JobCreation service was due
to the lack of application of the @XmlSeeAlso annotation.  In its
absense (and the absence of a jaxb.index file, which wouldn't have
helped anyway due to lack of service-specificity) it seems as though
the context was filled with all classes in the same package, and
classes referred to by those classes.  Once I added the annotation and
an appropriate ObjectFactory for the JobCreation service no attempts
were made  to resolve the problematic namespace.

Regards,
Callum.

On Thu, May 8, 2008 at 11:35 AM, chaig <[EMAIL PROTECTED]> wrote:
>
>  I have some followup to my earlier post.
>
>  As part of an investigation of technologies for wrapping existing code as
>  web services I have defined a number of services.  One represents a simple,
>  synchronous service called JobCreation.  The other two represent an
>  alternative asynchronous approach: AsyncJobCreation and JobCreationCallback.
>  The AsyncJobCreation service uses
>  javax.xml.ws.wsaddressing.W3CEndpointReference and its WSDL imports the
>  necessary schema with:
>
>  <xsd:import namespace="http://www.w3.org/2005/08/addressing";
>  schemaLocation="schemas/wsdl/ws-addr.xsd"/>
>
>  The JobCreation service does not require any references to
>  javax.xml.ws.wsaddressing classes or the corresponding schema.
>
>  When the AsyncJobCreation service is initialized I can see that
>  
> org.apache.cxf.common.xmlschema.SchemaCollection.setSchemaResolver(URIResolver
>  schemaResolver) is called with an instance of
>  org.apache.cxf.catalog.CatalogXmlSchemaURIResolver.  This causes
>  org.apache.ws.commons.schema.XmlSchemaCollection to look in
>  jar:file:/path/to/cxf-common-schemas-2.1.jar!/schemas/wsdl/ws-addr.xsd for
>  the ws-addr.xsd, which it finds.
>
>  When JobCreation is initialized, a
>  org.apache.ws.commons.schema.resolver.DefaultURIResolver is used (perhaps
>  because no WSDL with an xsd:import statement of the kind above is
>  implicated?).  For some reason it also seems to try to resolve the
>  "http://www.w3.org/2005/08/addressing"; namespace, in this case to
>  "http://www.w3.org/2006/03/addressing/ws-addr.xsd"; which is not reachable
>  from behind the corporate firewall.
>
>  I believe that this need to resolve "http://www.w3.org/2005/08/addressing";,
>  despite it not being required by JobCreation service (only AsyncJobCreation)
>  may be due to the fact that the org.apache.cxf.jaxb.JAXBDataBinding.context
>  has references to  javax.xml.ws.wsaddressing.W3CEndpointReference.  This may
>  result from reflection on the AsyncJobCreation service and supporting
>  classes which happen to be in the same package, or because one of those
>  classes has a @WebServiceClient annotation which has a wsdlLocation
>  parameter which refers to the WSDL for the AsyncJobCreation service.
>
>  If this speculation is correct, it seems some improvements might be made.
>  (If not please tell me what I'm doing wrong and how to fix it.)  Either the
>  JAXBDataBinding.context should contain references only to the service being
>  initialized and not to extraneous classes which happen to be in the same
>  package.  Or the URIResolver should be set more appropriately, possibly by
>  the user.  However I believe this latter, still wouldn't solve my problem,
>  since even if the initialization of the JobCreation service used the
>  CatalogXmlSchemaURIResolver, there would still need to be an xsd:import
>  clause like that above in the associated WSDL.  Not only did I use a Java
>  first approach with JobCreation (though not AsyncJobCreation), but even if I
>  had a WSDL I wouldn't want a reference to
>  http://www.w3.org/2005/08/addressing since its not required by that service.
>
>  Regards,
>  Callum.
>
>
>
>
>  chaig wrote:
>  >
>  > I'm having some difficulties which are related to failed attempts to
>  > resolve the namespace "http://www.w3.org/2005/08/addressing"; behind a
>  > firewall during initialization of a JAX-WS service.  I can see that a
>  > copy of the xsd is located within the cx-common-schemas jar (at
>  > schemas/wsdl/ws-addr.xsd). However, I believe it is not being resolved
>  > because org.apache.ws.commons.schema.XmlSchemaCollection.schemaResolver
>  > has been assigned an instance of type
>  > org.apache.ws.commons.schema.resolver.DefaultURIResolver.
>  >
>  > I believe if I can arrange for a
>  > org.apache.cxf.catalog.CatalogXmlSchemaURIResolver to be used instead
>  > I may be able to resolve the namespace to the file in the CXF jar.  Is
>  > it possible to do that declaratively, in Spring config?  Or perhaps
>  > there's another approach someone can suggest?
>  >
>  > Regards,
>  > Callum
>  >
>  >
>
>  --
>  View this message in context: 
> http://www.nabble.com/Unable-to-resolve-the-namespace-%22http%3A--www.w3.org-2005-08-addressing%22-behind-a-firewall-tp17099652p17117635.html
>  Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Reply via email to