cancel
Showing results for 
Search instead for 
Did you mean: 

SAP EP5 SP5 Java web app problem

Former Member
0 Kudos

Hi

Recently I developed a Java web app for a Portal client. The client is on EP5 SP5 with ITS and LDAP servers (a 3 server architecture). I then used the deployment tool to create the necessary ear file and then successfully deployed it to the SAP J2EE Engine. I then navigated to the following url:

http://<portal_server>:8100/<web_app>/welcome.jsp

However I am having trouble with the following:

1) the jsp pages are not being rendered properly. in fact welcome.jsp does not have any jsp tags at all but I am still getting a compiling exception. as soon as I change the extension to .html the page is displayed fine. issue: why am i not able to view the jsp pages. error: com.inqmy.services.servlets_jsp.jsp.CompilingException ID 17013

2) the web app I have developed utilises the sapjco functionality to connect to the relevant R3 system. in my web app directory structure I have included the necessary sapjco.jar in the WEB-INF/lib directory but get the attached jco error. (I shouldnt need to set the classpath since the sapjaco.jar file must get picked up from WEB-INF/lib directory). Error: At times I get a NoClassDefFoundError stopping at the line which requires the sapjco.jar file (where it uses JCo.Pool class) and at other times I get the "could not load middleware layer".

I have tried numerous things to fix it but in vain. Any thoughts around how I could go about resolving the issues will be greatly appreciated.

Willing to provide screenshots if required.

Cheers

Ankit

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Why dont you try the other way around. I am using the websphere to develop the application, and I had a simialr problem. Though I have the refernce.txt and the library.txt refernce to the jar files listed in the lib folder that is present in the same folder where the txt file exists. But still in my war file I also have the sapjco.jar file that is required. So include the sapjco.jar file by placing it in the web/inf folder.

reagrding the problem1) I am still not sure what is the exact problem. It is reading all the jar files that you have listed in the refernce.txt/library.txt.

If you are deploying this on the SAP cluster J2EE engine make sure that you raise the patch level 20+ to support the jar files. and restart the J2EE engine.

Ravi

Former Member
0 Kudos

Hi Ravi

> Why dont you try the other way around. I am using the > websphere to develop the application, and I had a

> simialr problem. Though I have the refernce.txt and

> the library.txt refernce to the jar files listed in

> the lib folder that is present in the same folder

> where the txt file exists.

Not too sure what you mean here! Sorry!

> But still in my war file I also have the sapjco.jar

> file that is required. So

> include the sapjco.jar file by placing it in the

> web/inf folder.

I have included the sapjco.jar in WEB-INF\lib folder. So whar you are saying is I include it at WEB-INF level and not inside a folder lib.

I am not deploying it in a cluster environment. It is a single portal box.

Cheers

Ankit

Former Member
0 Kudos

Hi ankit,

1)

The first problem is mainly because it is missing the inqmyxml.jar file. Your application will open with .html extension, but it will display all the Non Java part of the jsp. To see the jsp file the Java part has to be complied at the server side, which results in the error message that you are getting.

2)

Well this seems like misplaced jar files in the CLASSPATH. In the EP5 that you are using there should be classpath file where you can specify from where you are loading the sapjco.jar file. I would still recommend that you place the file in the lib folders in the application. Also make sure that you have the environment variables set for classpath to the location where the jar files are saved on to you computer. If you are using a windows machine,Then right click on my computer and go to properties. Select the advanced tab and then select the environment variables under "start up and recovery".

There you will see CLASSPATH listed under system variables. Edit that and place the location of the sapjco.jar file.

Hope this helps..if not can you post the complete error message that you are getting. Are you deploying this onto the local server or central server..

Ravi

Former Member
0 Kudos

Hi Ravi

I used the SAP J2EE Engine Deploy Tool to create the war and ear archives as well as deploy the ear archive. As I used this tool I included the required jar files inclusing the sapjco.jar inside WEB-INF\lib of the web archive (WAR). I tested this in a tomcat environment before deploying it to the portal environment.

1) The screendump is as below:

Internal Server Error 500!

com.inqmy.services.servlets_jsp.server.jsp.CompilingException: ID17013: Error in compiling : java.io.IOException: CreateProcess: javac -encoding UTF8 -nowarn C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\work\jsp_welcome1092865716140.java -classpath ".;.\system-lib\boot.jar;.\system-lib\jaas.jar;;.;.\additional-lib\jnet.jar;.\additional-lib\jdbc20.jar;.\services\iiop\iiop.jar;.\services\servlet_jsp\servlet_jsp.jar;.\services\p4\p4.jar;.\additional-lib\mail.jar;.\services\dbpool\dbpool.jar;.\additional-lib\connector.jar;.\additional-lib\activation.jar;.\services\deploy\deploy.jar;.\additional-lib\jta.jar;.\services\ts\ts.jar;.\additional-lib\jsse.jar;.\additional-lib\servlet.jar;.\additional-lib\ejb11.jar;.\additional-lib\jms.jar;.\services\ejb\ejb.jar;;C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\root\WEB-INF\lib\activation.jar;C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\root\WEB-INF\lib\inqmyxml.jar;C:\SAP_J2EEngine6.20\alone\services\servlet_jsp\work\jspTemp\changePassword\root\WEB-INF\lib\jcoapi.jar;C:\SAP_J2EEngine6.20\alone\D

at com.inqmy.services.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:296)

at com.inqmy.services.servlets_jsp.server.jsp.JSPServlet.getClassName(JSPServlet.java:333)

at com.inqmy.services.servlets_jsp.server.jsp.JSPServlet.service(JSPServlet.java:207)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:136)

at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:856)

at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:598)

at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:260)

at com.inqmy.services.httpserver.server.Response.handle(Response.java:164)

at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:909)

at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)

at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)

at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)

at java.security.AccessController.doPrivileged(Native Method)

at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)

As advised by you I included the inqmyxml.jar file in the WEB-INF\lib folder for this application. But it doesnt seem to have made a difference.

2) for the second issue where sapjco.jar isnt found the error is as seen below. At line 42 in R3.java I make a JCO call -

pool = JCO.getClientPoolManager().getPool(POOL_NAME);

Error Dump below:

java.lang.NoClassDefFoundError

at R3.(R3.java:42)

at ChangePassword.doPost(ChangePassword.java:76)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:136)

at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:856)

at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:598)

at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:260)

at com.inqmy.services.httpserver.server.Response.handle(Response.java:164)

at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:909)

at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)

at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)

at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)

at java.security.AccessController.doPrivileged(Native Method)

at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)

I would have expected EP5 to be able to find the appropriate jar files. Especially since it has its own library of jar files to work with. I was reading some J2EE Engine doco and came across two files library.txt and reference.txt. Do I need to maintain these files as I deploy my application?

Your thoughts will be appreciated.

Cheers