[prev in list] [next in list] [prev in thread] [next in thread]
List: xmlbeans-dev
Subject: [jira] Commented: (XMLBEANS-310) XmlObject.substitute() does not
From: "Radu Preotiuc-Pietro (JIRA)" <xmlbeans-dev () xml ! apache ! org>
Date: 2007-04-27 2:43:15
Message-ID: 23325800.1177641795483.JavaMail.jira () brutus
[Download RAW message or body]
[ https://issues.apache.org/jira/browse/XMLBEANS-310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12492173 \
]
Radu Preotiuc-Pietro commented on XMLBEANS-310:
-----------------------------------------------
So let me understand where you think the problem is:
- is it that you don't get an exception saying that the type was not found? I think \
that was deliberate because we are trying to not throw too many exceptions because \
some users may consider this unfriendly: you can check whether the operation \
succeeded by comparing the object returned with the initial object, it says in the \
JavaDoc
- or is it that XmlBeans uses 'Thread.currentThread.getContextClassLoader()'? This is \
a design decision; it has good parts and bad parts, I would say mostly good parts.... \
also you can always use your own classloader to override this behaviour so it should \
not be a problem.
Based on my current understanding of this issue I don't see what can be done here, so \
I am going to resolve it unless I hear back...
> XmlObject.substitute() does not work when XMLBeans are used in conujunction with \
> AXIS2 and run in a servlet container. Other operations might be affected by this as \
> well.
> ------------------------------------------------------------------------------------ \
> --------------------------------------------------------------------------------------
>
> Key: XMLBEANS-310
> URL: https://issues.apache.org/jira/browse/XMLBEANS-310
> Project: XMLBeans
> Issue Type: Bug
> Components: XmlObject
> Environment: AXIS2 version 1.1
> Tomcat version 5.5
> Reporter: Severin Ecker
> Priority: Minor
>
> In situations where, at runtime, a compiled schema for an XML element (XML type \
> name) is being looked for (this happens e.g. when the XmlObject.substitute() \
> operation is invoked) a resource is loaded via Classloader.getResourceAsStream() \
> (see SchemaTypeLoaderImpl.java) The problem is, that the Classloader of the current \
> thread ('Thread.currentThread.getContextClassLoader();) is used instead the \
> Classloader of an already loaded class (e.g.: classname.class.getClassLoader()). \
> This implementation works as long as it is not used within an AXIS2 service. In \
> this case all classes and resources are located in an .aar archive. At load time \
> this file is in the classpath and the XML-schemas and compiled classes are found. \
> But, later when a service operation is invoked, the classloader retrieved with \
> 'Thread.currentThread().getContextClassLoader() is of type WebappClassLoader \
> instead of org.apache.xmlbeans.impl.schema.SchemaTypeLoaderImpl. And this \
> WebappClassLoader does NOT look within the .aar file for the schema, therefore \
> substitude does not have the correct types available at runtime. Oh and, there is \
> also no error message in this case stating that a class couldn't be found/loaded! \
> Our workaround to this problem ATM is, setting the thread's contextClassLoader to \
> be the class loader of a class contained in our web application, first thing each \
> time an operation of our webservice is invoked. But a fix to this problem would of \
> course be highly appreciated!
> ps.: I will also crosspost this bugreport in AXIS2 since this problem is closely \
> related to AXIS2, which probobably should hand down a better suited class loader.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic