Hugh, Can you elaborate on this remark? Why do you think the JVM tries to load the DLL twice?
By the way, I tried a few things (synchronizing getCompanyList() and making a few methods and data members static), but I still get the same error message: Error rendering Velocity template: /controls/html/jetspeed.vm: Invocation of method 'getContent' in class CompanyList threw exception class java.lang.UnsatisfiedLinkError While Jetspeed was running, I tried to rename the DLL, in the hope that a sharing violation would point out the DLL was in use. I could rename the DLL, so in my opinion it was not in use. Regards, Michel -----Original Message----- From: Hugh Brien [mailto:[EMAIL PROTECTED]] Sent: dinsdag 5 februari 2002 16:14 To: Jetspeed Users List Cc: [EMAIL PROTECTED] Subject: Re: Finding native-language definitions 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]>
