Does the same thing happen if you're using hot deploying under Tomcat? 

I've recently left a lead architect position at another company, where the
'DAO layer' was basically SAP JCO calls. I never had the issue you're
getting here. I never tried jetty however, the code was based on a version
of Equinox about 3 years old, so it was Ant, and we used Tomcat locally for
testing before deploying to a remote SAP Netweaver server.





caius_swopes wrote:
> 
> I'm using the SAP JCO connector.  I have only one appfuse application
> running on one jetty server  There are two dll files that must be placed
> in the system32 folder for the JCO connector to work.  One of those dll
> files is named sapjcorfc.dll.  
> My application works fine when I do mvn jetty:run.  The problem occurs
> when the maven-jetty-plugin redeploys the server due to a change to a
> file.  From what I gather from other forums including the sap forum (see
> this thread: https://www.sdn.sap.com/irj/sdn/thread?threadID=15622 ),
> sapjcorfc.dll does not like to be loaded more than once "per machine". 
> Since I can completely restart maven with everything working fine and only
> a hot redeploy causes problems, I assume that in an appfuse/jetty/maven
> context this would mean "per server startup".  Is there anyway for me to
> tell the class loader, upon hot redeploy, to not load the dll file?
> 
> I'm not sure if this has anything to do with the problem but I found
> something odd in the error below.  If you look at the java.library.path
> there are extra entries that are not part of my path environment variable.
> 
> Here are my system path environment variables (where
> system.root=C:\WINDOWS):
> %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;D:\IBM\CLIENT~1;D:\IBM\CLIENT~1\Shared;D:\IBM\CLIENT~1\Emulator;C:\Program
> Files\Common Files\Adaptec
> Shared\System;D:\QuickTime\QTSystem\;%JAVA6_HOME%\bin;%ANT_HOME%\bin;%CATALINA_HOME%\bin;%MYSQL_HOME%\bin;%JAVAEE_HOME%\bin;D:\md5sum.exe;%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%JETTY_HOME%\bin;%JETTY_HOME%;%ANT_OPTS%;d:\Program
> Files\Subversion\bin
> 
> Here is the error:
> 
> 2007-11-15 11:28:50.995::WARN:  EXCEPTION
> java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not
> load mid
> dleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
> JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc
> [Native Li
> brary C:\WINDOWS\system32\sapjcorfc.dll already loaded in another
> classloader].
> java.library.path
> [C:\Java\jdk1.5.0\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\WIND
> OWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\IBM\CLIENT~1;D:\IBM\CLIENT~1
> \Shared;D:\IBM\CLIENT~1\Emulator;C:\Program Files\Common Files\Adaptec
> Shared\Sy
> stem;D:\QuickTime\QTSystem\;C:\Java\jdk1.6.0\bin;D:\apache-ant-1.7.0\bin;D:\wamp
> \tomcat\bin;D:\wamp\mysql\bin;C:\Sun\SDK\bin;D:\md5sum.exe;C:\Java\jdk1.5.0\bin;
> D:\maven-2.0.7\bin;D:\jetty-6.1.5\bin;D:\jetty-6.1.5;-Xmx1536M;d:\Program
> Files\
> Subversion\bin;C:\Sun\SDK\bin]
>         at com.sap.mw.jco.JCO.<clinit>(JCO.java:776)
>         at
> com.amersports.extranet.webapp.servlet.JCOConnectionServlet.init(JCOC
> onnectionServlet.java:37)
>         at javax.servlet.GenericServlet.init(GenericServlet.java:241)
>         at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.jav
> a:433)
>         at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:25
> 6)
>         at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
> 40)
>         at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.ja
> va:612)
>         at
> org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>         at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.jav
> a:1218)
>         at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
> 500)
>         at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448
> )
>         at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
> 40)
>         at
> org.mortbay.jetty.plugin.Jetty6PluginWebApplication.start(Jetty6Plugi
> nWebApplication.java:144)
>         at
> org.mortbay.jetty.plugin.AbstractJettyRunMojo$1.filesChanged(Abstract
> JettyRunMojo.java:423)
>         at org.mortbay.util.Scanner.reportBulkChanges(Scanner.java:456)
>         at org.mortbay.util.Scanner.reportDifferences(Scanner.java:327)
>         at org.mortbay.util.Scanner.scan(Scanner.java:254)
>         at org.mortbay.util.Scanner$1.run(Scanner.java:225)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)
> 
> Thanks
> Caius
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Is-there-any-way-to-tell-the-ClassLoader-to-not-load-a-class-upon-redeploy--tf4816518s2369.html#a13781112
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to