It may be a problem with the multi-threaded nature of the servlet engine and
the loading of the DLL.  I think that you could run into this problem if the
JVM attempts to load the DLL twice.  You may want to try putting a static
class wrapper with static synchronized methods around your calls to the
classes/method in JCO.jar.
r,
Hugh


----- Original Message -----
From: "Michel Bergijk" <[EMAIL PROTECTED]>
To: "Jetspeed Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, February 05, 2002 5:09 AM
Subject: RE: Finding native-language definitions


> Paul and fellow Jetspeed users,
>
> I think that might be the case. In the past I tried to accomplish the same
> with an Applet, with more or less the same result
> (ExceptionInInitializerError ). When asking the author about this problem
I
> got a very short, but explicit answer: "JCo cannot be used in Applets." I
am
> still pursuing this problem, even mailed the author again. When I hear
> anything, I will inform you.
>
> Michel
>
> -----Original Message-----
> From: Paul Spencer [mailto:[EMAIL PROTECTED]]
> Sent: dinsdag 5 februari 2002 4:24
> To: Jetspeed Users List
> Subject: Re: Finding native-language definitions
>
>
> Michel,
> I suspect their is an installation, classpath, security,... problem, but
> the author of jCO.jar, or it's dependent jars, will/may know the answer.
>
> Try writing a JSP that uses jCO.jar.  This will simplify the problem.
>
> Paul Spencer
>
> Michel Bergijk wrote:
>
> > Paul,
> >
> > In answer to your questions:
> > o Is the class CompanyList.class, or it's jar file, located
> >    in the correct directory? <jetspeed_home>/WEB-INF/classes/... or
> >    <jetspeed_home>/WEB-INF/lib
> > The classes are copied with a batch file to
> > C:\Apache\tomcat\webapps\jetspeed\WEB-INF\classes, my batch file:
> > ECHO Copying classes to
C:\Apache\tomcat\webapps\jetspeed\WEB-INF\classes
> > copy *.class C:\Apache\tomcat\webapps\jetspeed\WEB-INF\classes\*.class
> > All classes are available.
> >
> > o Based on the stacktrace, where did the exception occur?
> > I copy the relevant parts from my classes:
> > First, CompanyList.java
> > {
> > writer.println("CompanyList.getCompanyList: Logging in into IDES");
> > // Shown in my private logfile
> > // Log in into IDES
> > order.logIn (user);
> > // Create the BAPI
> > writer.println("CompanyList.getCompanyList: creating function " +
> > bapi); // Shown in my private logfile
> > order.createFunction (bapi);
> >
> > // Get the company list
> > writer.println("CompanyList.getCompanyList: getting
> > COMPANYCODE_LIST"); // NOT SHOWN
> > tableArray = order.getTableAsString("COMPANYCODE_LIST");
> > // Finish with closing the connection to IDES
> > order.closeClient();
> >
> > // Change tableArray to a HTML formatted string
> > StringBuffer buffer = new StringBuffer();
> > int length = tableArray.length;
> >
> > for (int i = 0; i < length; i++)
> > {
> > buffer.append(tableArray[i] + "<br>");
> > }
> > return buffer.toString();
> > }
> >
> > Next: Order.java
> > private JCO.Client client;
> >
> > public void logIn (User user)
> > {
> > write ("Order.logIn: logging in user " + user.getUser() ); // Shown
> > in my private logger
> > try
> > {
> > client = JCO.createClient(user.getLoginParams() );
> > write ("Order.logIn: connecting" ); // NOT SHOWN
> > client.connect();
> > // And create the repository
> > createRepository();
> > }
> > catch (Exception exception)
> > {
> > write ("Exception: " + exception.getMessage() +
> > "Order.logIn()");
> > closeClient ("Exception: " + exception.getMessage(),
> > "Order.logIn()");
> > System.exit(1);
> > }
> > }
> >
> > The relevant parts in my private logger:
> > CompanyList.ConcreteElement: creating order
> > Order.<init>: constructed
> > CompanyList.ConcreteElement: creating StringElement
> > CompanyList.ConcreteElement: getting company list
> > CompanyList.getCompanyList: Logging in into IDES
> > Order.logIn: logging in user mbergijk
> > EOF
> >
> > By the way, as a stand alone application, using (almost) the same code,
> > everything works. Of course, almost is the dangerous word in this
> sentence.
> >
> > So, the original code of Order.java (from the application that worked):
> > public void logIn (User user) throws Exception
> > {
> > try
> > {
> > client = JCO.createClient(user.getLoginParams() );
> > client.connect();
> > // And create the repository
> > createRepository();
> > }
> > catch (Exception exception) {
> > closeClient ("Exception: " + exception.getMessage(),
> > "Order.logIn()");
> > }
> > }
> >
> > o Do the demo portlets work?
> > Yes. See the following copy of my Jetspeed portals page for the turbine
> > user:
> > Company list
> > org.apache.turbine.util.TurbineException: Error rendering Velocity
> > template: /controls/html/jetspeed.vm: Invocation of method 'getContent'
> > in class CompanyList threw exception class
java.lang.UnsatisfiedLinkError
> >
> > CMG Stock Quote
> > CMG stock price: CMGStockQuote.getQuote: Error opening socket:
> > soaptest.activestate.com
> >
> > Hello User
> > Hello Michel! Currently the following portals are available:
> > None! Check back later
> >
> > Note: Error opening socket is probably caused by me working behind a
> > firewall. This is not a pressing problem. First let me fix this
> > native-language problem. Then start the firewall problem in another
> thread.
> > The HelloUser portlet works as expected.
> >
> > The JCO.Client class is situated in jCO.jar, placed in
> > C:\Apache\tomcat\webapps\jetspeed\WEB-INF\lib. When I try to rename this
> jar
> > file while Jetspeed is running, I get a share violation. This means that
> the
> > jCO.jar file is in use while Jetspeed is running. From this I must
> conclude
> > Jetspeed is capable of finding the jCO.jar file, and can use it.
> >
> > Conclusion:
> > I still think Jetspeed cannot find my DLL's in C:\WINNT\system32. These
> > DLL's are used by jCO.jar when connecting to SAP.
> >
> > Based on my inclusions, I hope someone can shed some light on this
> problem.
> >
> > Michel
> >
>
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
>


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

Reply via email to