Dims and Luigi--
I ran into this bug today and applied dims fix of Aug 2005 to all affected
source files to fix and rebuilt the jar..
I have a strange feeling that we should be submitting this patch to
someone higher up on the food chain (but I dont know who that is?)
Thanks,
Martin --
*********************************************************************
This email message and any files transmitted with it contain confidential
information intended only for the person(s) to whom this email message is
addressed. If you have received this email message in error, please
notify
the sender immediately by telephone or email and destroy the original
message without making a copy. Thank you.
> Martin,
>
> No, we have not made a release since that bug got fixed.
>
> -- dims
>
> On 8/29/06, Martin Gainty <[EMAIL PROTECTED]> wrote:
>> Good Morning Luis and Dims-
>>
>> I am following up on a nasty bug (which I am experiencing) which Luis
reported and dims fixed Aug 2005 in commons-discovery
>> Here is the link
>>
http://svn.apache.org/viewvc/jakarta/commons/proper/discovery/trunk/src/java/org/apache/commons/discovery/jdk/JDK12Hooks.java?diff_format=h&r1=165666&r2=227023&pathrev=227023
>>
>> The mods dims made are on Line 212 of
/org/apache/commons/discovery/jdk/JDK12Hooks.java (which I CANNOT locate in
any of the source distros!)
>>
>> if (classLoader == null) {
>> 213 SecurityManager security =
System.getSecurityManager();
>> 214 if (security != null) {
>> 215 try {
>> 216 security.checkCreateClassLoader();
>> 217 classLoader = new
PsuedoSystemClassLoader(); classLoader = new
PsuedoSystemClassLoader();
>> 218 } catch (SecurityException se){
>> 219 }
>> 220 }
>> 221 } }
>>
>> *********************************************************************
>>
>> Is there a repository which contains the commons-discovery updates ???
>>
>> Thanks!
>> Martin --
>> This email message and any files transmitted with it contain
confidential
>> information intended only for the person(s) to whom this email message
is
>> addressed. If you have received this email message in error, please
notify
>> the sender immediately by telephone or email and destroy the original
>> message without making a copy. Thank you.
>>
>>
>>
>> ----- Original Message -----
>> From: "Luis Rivera" <[EMAIL PROTECTED]>
>> To: "Martin Gainty" <[EMAIL PROTECTED]>
>> Cc: "Tomcat Users List" <users@tomcat.apache.org>
>> Sent: Monday, July 24, 2006 6:37 PM
>> Subject: Re: java.lang.LinkageError: Class soap/xsd/CompanyInfo
violates loader constraints
>>
>>
>> > Dear Martin,
>> >
>> > Thanks again for the reply.
>> >
>> > I added some questions to your responses, hoping that I can clarify
what I
>> > am trying to do. I think I have been very confusing and probably the
>> > solution is so obvious I am just missing it.
>> >
>> > 2)
>> >> ClassLoader delegation-
>> >> Straight from the doc at
>> >> http://docs.sun.com/app/docs/doc/819-2556/6n4rap8qm?a=view
>> >>
>> >> "Servlet specification recommends that the Web Classloader look in
the
>> >> local class loader before delegating to its parent. To make the Web
>> >> Classloader follow the delegation model in the Servlet
specification, set
>> >> delegate="false" in the class-loader element of the sun-web.xmlfile. *It's
>> >> safe to do this only for a web module that does not interact with
any other
>> >> modules."*
>> >>
>> >> "The default value is delegate="true", which causes the Web
Classloader to
>> >> delegate in the same manner as the other classloaders. Use
delegate="true"for a web application that accesses EJB components or that
acts as a web
>> >> service client or endpoint. For details about sun-web.xml, see The
>> >> sun-web.xml File<
http://docs.sun.com/app/docs/doc/819-2556/6n4rap8u6?a=view>
>> >> ."
>> >>
>> >> from the doc if your webapp is standalone set delegate = false
>> >> If it's accessing EJB components or is a webservice client and or
endpoint
>> >> delegate = true
>> >> I defer to the sun application server site for accuracy on
configuration
>> >> and installation details
>> >>
>> >
>> > If I understand this, this means this is possible in J2EE, which I
had read
>> > about. But, what about TOMCAT? Is it possible to do the same thing in
>> > Tomcat, just to see if that would solve my problem?
>> >
>> > I have looked around on the web, documentaiton and configuration
files and
>> > this does not seem to be possible in Tomcat
>> >
>> >
>> >> 3)
>> >> JNI:
>> >> I *assume* you are attempting to build and configure your own mod_jk
>> >> worker?
>> >> http://tomcat.apache.org/connectors-doc/install/apache2.html
>> >> This is system related stuff which assumes you are backing up your
current
>> >> installation beforehand
>> >> and using Platform specific utilities (cl/gcc/iSeries) to
essentially make
>> >> your platform-specific binaries
>> >> The important point here is to use the platform specific
>> >> install/configuration/compile scripts which are blesses by the
platform's
>> >> vendor-
>> >>
>> >
>> > No, I am trying to do something a lot simpler.
>> >
>> > See, we already have a server side implementation of the services in
C++
>> > (Roguewave), but we are looking into a cheaper option, which is why I
was
>> > looking into axis/tomcat. My clients are using Axis anyway, so I
thought
>> > using Tomcat was going to be straight forward.
>> >
>> > So, we don't want to reimplement everything in Java, which means I
only need
>> > a jni wrapper in the axis server to call my DCE proxies in C++. So,
the
>> > picture looks like this
>> >
>> > axis Client --> axis Server --> jniWrapper --> DCEProxy (C++
implementation)
>> >
>> > And the problem lies on the fact that I need to place the jniWrapper
outside
>> > of the TOMCAT_HOME/webapps directory, causing all kind of problems
with the
>> > class loaders, despite the fact that all the classes are supposedly
>> > correctly resolved. I still have that LinkageError, regardless of
where I
>> > place the classe (shared or common).
>> >
>> > As I said before, if all the application is placed under
>> > TOMCAT_HOME/webapps/axis/classes, there are no exceptions thrown!
>> >
>> > Hope this clarifies my situation and if you have any advice, I would
greatly
>> > appreciate it.
>> >
>> > Thanks in advance,
>> > -Luis R.
>> >
>> > HTH,
>> >> M-
>> >>
*********************************************************************
>> >>
>> >> This email message and any files transmitted with it contain
confidential
>> >> information intended only for the person(s) to whom this email
message is
>> >> addressed. If you have received this email message in error, please
>> >> notify
>> >> the sender immediately by telephone or email and destroy the
original
>> >> message without making a copy. Thank you.
>> >>
>> >>
>> >>
>> >>
>> >> ----- Original Message -----
>> >> *From:* Luis Rivera <[EMAIL PROTECTED]>
>> >> *To:* Raju Balugu <[EMAIL PROTECTED]>
>> >> *Cc:* Tomcat Users List <users@tomcat.apache.org>
>> >> *Sent:* Monday, July 24, 2006 5:18 AM
>> >> *Subject:* Re: java.lang.LinkageError: Class soap/xsd/CompanyInfo
violates
>> >> loader constraints
>> >>
>> >>
>> >> Dear Raju and Martin,
>> >>
>> >> First of all, thanks a lot for the replies. I do appreciate it. I am
>> >> including the WSDL so you can take a look if you have a chance. I
will post
>> >> it over the axis lists very soon.
>> >>
>> >> Martin:
>> >> 1) I don't think it is the WSDL, because as you could appreciate in
the
>> >> WSDL, it is defined. Also, if I have all the application inside
>> >> webapps/axis/WEB-INF/classes, it works! But as soon as I take the
class that
>> >> load the JNI DLL to the common/classes or shared/classes
directories, then I
>> >> run into the trouble with the class loaders. First I noticed that
the errors
>> >> were due to classes I did not copy to the common directory
(CompanyInfo), so
>> >> I did and the error changed to what LinkageError.
>> >>
>> >> 2) Regarding the class loading model. I understand why it is
recommended,
>> >> but is it possible to change it? The reason I ask is because I found
on the
>> >> web an email from a guy with the same exception, but using J2EE and
he said
>> >> that by setting the delegation to true in the sun-web.xml file, the
>> >> problem was solved!!!
>> >>
>> >> 3) Could you let me know which libraries are you talking about? The
>> >> bootstrap.jar file under the TOMCAT_HOME/bin directory?
>> >>
>> >> Raju:
>> >>
>> >> I am using the common/classes, after migrating from the
shared/classes
>> >> directory, thinking that might solve the problem, but no luck. Both
of those
>> >> directories are defined for the common and shared loader
respectively in the
>> >> catalina.properties directory. Let me just try to illustrate what I
am
>> >> trying to do:
>> >>
>> >> CRLImpl.java: Entry point, file generated by WSDL2Java (inside
>> >> webapps/axis/WEB-INF/classes)
>> >>
>> >> void getCompany(CompanyInfoHolder company, StringHolder result)
>> >> {
>> >> crl.nada(company, result);
>> >> }
>> >>
>> >> jniCRLimpl.java: jni wrapper that will load the crl.DLL library
(inside
>> >> common/classes)
>> >>
>> >> void nada(CompanyInfoHolder company, StringHolder result)
>> >> {
>> >> company.value = new soap.xsd.CompanyInfo(); // The problem
comes
>> >> here !!!
>> >> ....
>> >> }
>> >>
>> >> This exact same code, works if all is located under
>> >> webapps/axis/WEB-INF/classes, but as the TOMCAT documentation lets
me know,
>> >> I have to take the jniCRLimpl.java to the shared or common directory
to
>> >> prevent TOMCAT from trying to load my DLL more than once.
>> >>
>> >> Thanks again and in advance for any pointer you all can give me,
>> >> --Luis R.
>> >>
>> >> On 7/23/06, Raju Balugu <[EMAIL PROTECTED]> wrote:
>> >> >
>> >> > Hi ,
>> >> >
>> >> > How you are loading the outside(which are not there in classpath)
jars
>> >> > and classes in tomcat? try to load the outside jar and class files
from the
>> >> > catalina.properties(/conf).It may solve ur problem?please let me
know
>> >> > server configuration too.
>> >> >
>> >> > Regards
>> >> > Raju
>> >> >
>> >> >
>> >> > On 7/24/06, Luis Rivera < [EMAIL PROTECTED]> wrote:
>> >> > >
>> >> > > Dear Martin Gainty,
>> >> > >
>> >> > > I have posted this issue on the axis (devs and users) lists,
without
>> >> > > any
>> >> > > luck. I really thought it was because it was a tomcat issue, so
I am
>> >> > > posting
>> >> > > it here. The only thing I have not posted is my WSDL, which I
will do,
>> >> > > in
>> >> > > both places. But in case I still have your attention, please let
me
>> >> > > know if
>> >> > > you or somebody who reads this know the answer to these
questions?
>> >> > >
>> >> > > Q1) Does this mean this is an axis isseu?
>> >> > >
>> >> > > Q2) Is there a way to change the class loading policy in Tomcat?
(I
>> >> > > know
>> >> > > that delegation works under the servel model)
>> >> > >
>> >> > > Q3) Is it true that in Tomcat I need to place the classes that
load
>> >> > > JNI
>> >> > > libraries outside of the webapps directory? If not, then my
problem is
>> >> > > solved.
>> >> > >
>> >> > > Thanks in advance,
>> >> > > --Luis R.
>> >> > >
>> >> > > On 7/23/06, Martin Gainty < [EMAIL PROTECTED] > wrote:
>> >> > > >
>> >> > > > Luis please post this email and your WSDL to
axis-user@ws.apache.org
>> >> > > > Martin --
>> >> > > >
>> >> > >
*********************************************************************
>> >> > > > This email message and any files transmitted with it contain
>> >> > > confidential
>> >> > > > information intended only for the person(s) to whom this email
>> >> > > message is
>> >> > > > addressed. If you have received this email message in error,
please
>> >> > >
>> >> > > > notify
>> >> > > > the sender immediately by telephone or email and destroy the
>> >> > > original
>> >> > > > message without making a copy. Thank you.
>> >> > > >
>> >> > > >
>> >> > > >
>> >> > > > ----- Original Message -----
>> >> > > > From: "Luis Rivera" < [EMAIL PROTECTED]>
>> >> > > > To: < users@tomcat.apache.org>
>> >> > > > Sent: Sunday, July 23, 2006 8:03 AM
>> >> > > > Subject: java.lang.LinkageError : Class soap/xsd/CompanyInfo
>> >> > > violates
>> >> > > > loader constraints
>> >> > > >
>> >> > > >
>> >> > > > > HELP PLEASE, PLEASE PLEASE,
>> >> > > > >
>> >> > > > > Any tomcat Guru knows what can cause this exception? I
need to
>> >> > > have
>> >> > > > some
>> >> > > > > classes either in shared or common, outside of the webapps
>> >> > > directory.
>> >> > > > This
>> >> > > > > is causing my a great headache, and only by activating the
loggin
>> >> > > in the
>> >> > > > > webapps directory I saw the trace you will see below. I
solved all
>> >> > > the
>> >> > > > > problems of the classloaders not finding the classes, but I
don't
>> >> > > know
>> >> > > > how
>> >> > > > > to solve this one.
>> >> > > > >
>> >> > > > > I read in another website that the problem might be the
>> >> > > classloading
>> >> > > > > delegation, but I don't think Tomcat has a way to change the
>> >> > > > classloading
>> >> > > > > delegation model. Besides, I don't believe that would solve
it,
>> >> > > because
>> >> > > > I
>> >> > > > > don't think the problem is that it is not finding the
classes, but
>> >> > >
>> >> > > > something
>> >> > > > > else ... what constraints and where are they set? I am not
using a
>> >> > > > Security
>> >> > > > > Manager, so it is not about permissions in the
catalina.policyfile.
>> >> > > > >
>> >> > > > > Here is the full stack trace
>> >> > > > >
>> >> > > > > 27782 [http-8095-Processor25] DEBUG
org.apache.axis.enterprise -
>> >> > > > Mapping
>> >> > > > > Exception to AxisFault^M
>> >> > > > > java.lang.reflect.InvocationTargetException^M
>> >> > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0
(Native
>> >> > > Method)^M
>> >> > > > > at sun.reflect.NativeMethodAccessorImpl.invoke(
>> >> > > > > NativeMethodAccessorImpl.java:39)^M
>> >> > > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke (
>> >> > > > > DelegatingMethodAccessorImpl.java:25)^M
>> >> > > > > at java.lang.reflect.Method.invoke(Method.java:585)^M
>> >> > > > > at
org.apache.axis.providers.java.RPCProvider.invokeMethod(
>> >> > > > > RPCProvider.java:397)^M
>> >> > > > > at
>> >> > > org.apache.axis.providers.java.RPCProvider.processMessage(
>> >> > > > > RPCProvider.java:186)^M
>> >> > > > > at org.apache.axis.providers.java.JavaProvider.invoke
(
>> >> > > > > JavaProvider.java:323)^M
>> >> > > > > at
org.apache.axis.strategies.InvocationStrategy.visit(
>> >> > > > > InvocationStrategy.java:32)^M
>> >> > > > > at org.apache.axis.SimpleChain.doVisiting(
SimpleChain.java:118)^M
>> >> > > > > at org.apache.axis.SimpleChain.invoke(
SimpleChain.java:83)^M
>> >> > > > > at org.apache.axis.handlers.soap.SOAPService.invoke(
>> >> > > > SOAPService.java
>> >> > > > > :454)^M
>> >> > > > > at org.apache.axis.server.AxisServer.invoke(
AxisServer.java
>> >> > > > :281)^M
>> >> > > > > at org.apache.axis.transport.http.AxisServlet.doPost(
>> >> > > > > AxisServlet.java:699)^M
>> >> > > > > at javax.servlet.http.HttpServlet.service (
HttpServlet.java
>> >> > > :709)^M
>> >> > > > > at
org.apache.axis.transport.http.AxisServletBase.service(
>> >> > > > > AxisServletBase.java:327)^M
>> >> > > > > at javax.servlet.http.HttpServlet.service (
HttpServlet.java
>> >> > > > :802)^M
>> >> > > > > at
>> >> > > >
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
>> >> > > > > ApplicationFilterChain.java:252)^M
>> >> > > > > at
org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> >> > > > > ApplicationFilterChain.java :173)^M
>> >> > > > > at
org.apache.catalina.core.StandardWrapperValve.invoke(
>> >> > > > > StandardWrapperValve.java:213)^M
>> >> > > > > at
org.apache.catalina.core.StandardContextValve.invoke (
>> >> > > > > StandardContextValve.java:178)^M
>> >> > > > > at org.apache.catalina.core.StandardHostValve.invoke(
>> >> > > > > StandardHostValve.java:126)^M
>> >> > > > > at org.apache.catalina.valves.ErrorReportValve.invoke(
>> >> > > > > ErrorReportValve.java:105)^M
>> >> > > > > at
org.apache.catalina.core.StandardEngineValve.invoke (
>> >> > > > > StandardEngineValve.java:107)^M
>> >> > > > > at
org.apache.catalina.connector.CoyoteAdapter.service (
>> >> > > > > CoyoteAdapter.java:148)^M
>> >> > > > > at org.apache.coyote.http11.Http11Processor.process(
>> >> > > > > Http11Processor.java:869)^M
>> >> > > > > at
>> >> > > > >
>> >> > > >
>> >> > >
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
>> >> > > > > (Http11BaseProtocol.java:664)^M
>> >> > > > > at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
>> >> > > (
>> >> > > > > PoolTcpEndpoint.java:527)^M
>> >> > > > > at
>> >> > > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (
>> >> > > > > LeaderFollowerWorkerThread.java:80)^M
>> >> > > > > at
>> >> > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
>> >> > > > > ThreadPool.java:684)^M
>> >> > > > > at java.lang.Thread.run ( Thread.java :595)^M
>> >> > > > > Caused by: java.lang.LinkageError: Class
soap/xsd/CompanyInfo
>> >> > > violates
>> >> > > > > loader constraints^M
>> >> > > > > at java.lang.ClassLoader.defineClass1(Native
Method)^M
>> >> > > > > at java.lang.ClassLoader.defineClass (
ClassLoader.java
>> >> > > :620)^M
>> >> > > > > at java.security.SecureClassLoader.defineClass(
>> >> > > > > SecureClassLoader.java:124)^M
>> >> > > > > at java.net.URLClassLoader.defineClass (
URLClassLoader.java
>> >> > > :260)^M
>> >> > > > > at java.net.URLClassLoader.access$100 (
URLClassLoader.java
>> >> > > :56)^M
>> >> > > > > at java.net.URLClassLoader$1.run(URLClassLoader.java
:195)^M
>> >> > > > > at java.security.AccessController.doPrivileged(Native
>> >> > > Method)^M
>> >> > > > > at java.net.URLClassLoader.findClass (
URLClassLoader.java
>> >> > > :188)^M
>> >> > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java
:306)^M
>> >> > > > > at java.lang.ClassLoader.loadClass (ClassLoader.java
:251)^M
>> >> > > > > at java.lang.ClassLoader.loadClassInternal (
>> >> > > ClassLoader.java
>> >> > > > :319)^M
>> >> > > > > at vsa.jniCRLimpl.nada(jniCRLimpl.java:100)^M
>> >> > > > > at soap.wsdl.CRLImpl.getCompany (CRLImpl.java:94)^M
>> >> > > > > at soap.wsdl.CRLSkeleton.getCompany(Unknown Source)^M
>> >> > > > > ... 30 more^M
>> >> > > > >
>> >> > > > > Thanks in advance,
>> >> > > > > --Luis R.
>> >> > > > >
>> >> > >
>> >> > >
>> >> >
>> >> ------------------------------
>> >>
>> >>
---------------------------------------------------------------------
>> >> To start a new topic, e-mail: users@tomcat.apache.org
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>> >
>
>
> --
> Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service
Developers)
>