cancel
Showing results for 
Search instead for 
Did you mean: 

issue with J2ee app to access KM in EP 7.4

Former Member
0 Kudos
Not sure if the code/app is having some issues or there is some issue with the EP system itself.
Need your expert comments.
Relevant info is :

EP:  NW 7.4 SP11

NWDS : SAP Enhancement Package 1 for SAP NetWeaver Developer Studio 7.3 SP15 PAT0003

Working on migration of servlet based J2EE App to read KM content (app is getting migrated from EP 7.0 to 7.4).
Have already fixed the InvokerServlet issue.
Stuck at following :
When using
ResourceContext ctx = new ResourceContext(WPUMFactory.getServiceUserFactory().getServiceUser("cmadmin_service"));
OR
IResourceContext ctx = ResourceFactory.getInstance().getServiceContext("cmadmin_service");
getting following exception trace in NWA :
[EXCEPTION]
java.lang.NoClassDefFoundError: com/sapportals/wcm/crt/CrtClassLoaderRegistry

at com.sapportals.wcm.repository.ResourceFactory.getInstance(ResourceFactory.java:48)

at com.sap.FileUpload.doGet(FileUpload.java:49)
<application-j2ee-engine>
     <reference
          reference-type="weak">
          <reference-target
               provider-name="sap.com"
               target-type="application">com.sap.km.application</reference-target>
     </reference>
     <provider-name>yourvendor.com</provider-name>
     <fail-over-enable
          mode="disable"/>
</application-j2ee-engine>
but, as the new app has been migrated using newer version of NWDS (for compatibility with EP 7.4), the "web-j2ee-engine.xml" was modified as follows. Anything similar to above is not accepted and file shows errors (as those parameters are no longer available/deprecated).
<spec-version>2.3</spec-version>
<resource-ref>
<res-ref-name>com.sap.km.application</res-ref-name>
</resource-ref>
</web-j2ee-engine>

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

please find detailed error trace also:

500 Internal Server Error is returned for HTTP request
[http://<host>:port/KMFileUpload/servlet/com.sap.FileUpload]:

  component [FileUpload],
  web module [KMFileUpload],
  application
[JavaEE/KMFileUpload],
  DC name [JavaEE/KMFileUpload],
  CSN
component[],
  problem categorization [com.sap.ASJ.web.000137],
 
internal categorization [848019811].


[EXCEPTION]
java.lang.NoClassDefFoundError:
com/sapportals/wcm/crt/CrtClassLoaderRegistry
at
com.sapportals.wcm.repository.ResourceFactory.getInstance(ResourceFactory.java:48)
at
com.sap.FileUpload.doGet(FileUpload.java:49)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
at
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
at
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:466)
at
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
at
com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:278)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
at
com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at
com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
at
com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
at
com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
at
com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at
com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at
com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
Caused
by: java.lang.ClassNotFoundException:
com.sapportals.wcm.crt.CrtClassLoaderRegistry
-------------------------
Loader Info -------------------------
ClassLoader name:
[JavaEE/KMFileUpload]
Loader hash code: 5f151f73
Living status: alive

Direct parent loaders:
   [system:Frame]
   [interface:webservices]

   [interface:cross]
   [interface:security]
 
[interface:transactionext]
   [library:webservices_lib]
 
[library:opensql]
   [library:jms]
   [library:ejb20]
 
[service:p4]
   [service:ejb]
   [service:servlet_jsp]
Resources:

 
/usr/sap/LED/J00/j2ee/cluster/apps/JavaEE/KMFileUpload/servlet_jsp/KMFileUpload/root/WEB-INF/classes

 
/usr/sap/LED/J00/j2ee/cluster/apps/JavaEE/KMFileUpload/servlet_jsp/KMFileUpload/root/WEB-INF/lib/bc.rf.framework_api.jar

 
/usr/sap/LED/J00/j2ee/cluster/apps/JavaEE/KMFileUpload/servlet_jsp/KMFileUpload/root/WEB-INF/lib/bc.util.public_api.jar

 
/usr/sap/LED/J00/j2ee/cluster/apps/JavaEE/KMFileUpload/servlet_jsp/KMFileUpload/root/WEB-INF/lib/com.sap.security.api.ep5.jar

 
/usr/sap/LED/J00/j2ee/cluster/apps/JavaEE/KMFileUpload/servlet_jsp/KMFileUpload/root/WEB-INF/lib/com.sap.security.jar

 
/usr/sap/LED/J00/j2ee/cluster/apps/JavaEE/KMFileUpload/servlet_jsp/KMFileUpload/root/WEB-INF/lib/cos.jar

---------------------------------------------------------------
at
com.sap.engine.boot.loader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:280)
at
com.sap.engine.boot.loader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:249)
...
43 more

Former Member
0 Kudos

Hi there,

as far as I understand you have a web module project (containing the web-j2ee-engine.xml) that gets included in ear project (containing the application-j2ee-engine.xml). I do not see why it shouldn't be possible to add the required reference to the application-j2ee-engine.xml file:

<reference reference-type="weak">

   <reference-target

               provider-name="sap.com"

               target-type="application">com.sap.km.application</reference-target>

</reference>

Another thing:

you may want to change the way you get the cmadmin_service user. In 7.4, KM no longer uses the old "ep5user". You can use the "com.sap.security.api.IUser" also in KM:

com.sap.security.api.IUser theUser = UMFactory.getServiceUserFactory().getServiceUser("cmadmin_user");

ResourceContext ctx = ResourceContext.getInstance(theUser);

ResourceFactory.getInstance().getResource(rid, ctx);

Let me know how it goes.

Regards,

Tanja

Former Member
0 Kudos

Hi Tanja

Your understanding is correct, but the fact remains that with the verison 2.3 of "application-j2ee-engine.xml" (created after i migrated the project using NWDS 7.31), the tags in question are no longer applicable.

Whenever i try to "forcibly" put those tags (and details), the xml shows as corrupt, and i cannot proceed any further.

Also, I had tried to use other varieties of the code to have ResourceContext/IResourceContext, but all of them fail at the same place.

Adding to above,

I tried to create a simple portal application (JSPDynpage) to achieve the functionality, but as the case goes, I was able to achive the functionality (technically) and there were no such errors as mentioned above, but the look and feel went haywire (because of incompatible html tags in the JSP).

At this juncture, i have two possible roads:

1. Keep the old Web Servlet app, try to tweak the "application-j2ee-engine.xml" (not sure how it has to be done), and hope all may go good.

2. Create a JSP Dynpage Portal Application from Scratch, and put lots of effort in the JSP with HTML tags.

What is suggested for future upgrades/migrations/compatibilty ?

Should i stick to J2EE Servlet Web Apps or start working towards having Portal Apps in place.

Former Member
0 Kudos

Hi Neeraj,

I assume that there is some kind of problem in the project setup, maybe originating from the migration process. You mention a version of "application-j2ee-engine.xml" but I cannot see a version mentioned in any of my projects - it is only the "web-j2ee-engine.xml" that has a version (i.e. <spec-version>2.4</spec-version>)...

So let me suggest a third possible road:

Create a new "Enterprise Application project" with NWDS. When the wizard asks for "Java EE module dependencies" select "New Module", in the new popup window select "Web module". In the end, you will have a EAR project and the Web Module project.

Now you can start adding the required source code files from the old project to the new one.

Obviously, you will have to add the required build and runtime dependencies. But hopefully, this time, you will not have any trouble adding the KM reference to "application-j2ee-engine.xml".

Hope that helps 🙂