6

After installing the Tridion Odata webservice opened the odata.svc and was greeted by this exception:

Exception Details:

Java.Lang.Throwable: Could not initialize class com.tridion.webservices.odata.input.handler.ODataWebserviceHandler    
Some Java classes or interfaces could not be found or loaded    
The most typical reasons for this problem are:
  - you forgot to configure a classpath
  - a jarfile, zipfile, or directory is missing from your classpath
  - you have a typo in one of your classpath entries
  - a jarfile required by one of your classes is missing from your classpath
  - a jarfile on your classpath is out-of-date and does not contain some new classes

 com.tridion.web.jsp.JSPProcessor
 com.tridion.web.jsp.tag.DynamicComponentLinkHandler
 com.tridion.web.jsp.tag.IncrementKeyHandler
 com.tridion.webservices.odata.input.handler.ODataWebserviceHandler
 com.tridion.web.jsp.ResponseWrapper
 com.tridion.web.jsp.tag.ConditionsHandler
 com.tridion.web.jsp.tag.ComponentLinkHandler
 com.tridion.webservices.odata.ODataContextListener
 com.tridion.web.jsp.tag.TargetGroupHandler
 com.tridion.web.jsp.tag.BinaryLinkHandler
 com.tridion.webservices.odata.ODataPublicationMappingFilter
 com.tridion.web.jsp.tag.ComponentPresentationHandler
 com.tridion.ambientdata.web.AmbientDataServletFilter
 com.tridion.webservices.security.authentication.OAuth2AccessTokenHandler
 com.tridion.web.jsp.JSPXSLTProcessor
 com.tridion.web.jsp.tag.ConditionHandler
 com.tridion.web.jsp.tag.PageLinkHandler
 com.tridion.web.jsp.tag.TaxonomyHandler
 com.tridion.web.jsp.tag.LinkBaseHandler

The Windows event log provided some additional information:

java.lang.NoClassDefFoundError: Could not initialize class com.tridion.webservices.odata.input.handler.ODataWebserviceHandler at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.codemesh.bootstrap.JarInputStreamBootstrapper.forName(Unknown Source) at Codemesh.JuggerNET.NTypeValue.Throw(Int64 inst) at Codemesh.JuggerNET.JavaClass.ThrowTypedException(Int64 inst) at Codemesh.JuggerNET.JavaClass.init() at Codemesh.JuggerNET.JavaClass.get_JObject() at Codemesh.JuggerNET.JavaField.init() at Codemesh.JuggerNET.JavaField.get_FieldPtr() at Codemesh.JuggerNET.JavaField.get_staticobjectValue() at Com.Tridion.Webservices.Odata.Input.Handler.ODataWebserviceHandler.get_ODATA_SERVICE()

Thread information: Thread ID: 9 Thread account name: IIS APPPOOL\ContentDeliveryService Is impersonating: False

Stack trace: at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

Installation steps that i used:

Details on my machine:

  • Operating system: Windows 2008R2
  • Tridion content manager: Hotfix Rollup SDL Tridion 2011 SP1 - 2 (6.1.0.998)
  • Content delivery as Windows Service (TRIDION_HOME: C:\Program Files (x86)\Tridion).
  • Tridion broker: SDL Tridion 2011 SP1 (6.1.0.0)
  • Java version: Java 7 JDK (JAVA HOME: C:\Program Files\Java\jdk1.7.0_65)

Update after the first reply

My machine runs a 64 bit operating system. I have installed the complete webservice from the Tridion 2011 SP1 package Tridion 2011 SP1\Content Delivery\roles\webservice\dotNet\x86_64\webservice.zip. This package should contain the proper jar files. I installed JDK 1.6.0.34 as you suggested and changed the JAVA_HOME accordingly. Unfortunately this did not resolve the issue.

After that I completely uninstalled the JDK 7, so I only had the supported version running. This did not help either.

After that I tried applying the latest files from the Tridion 2011 SP1 HR2 to webservice folder. The jar files from Tridion 2011 SP1 HR2\Content Delivery\lib\ and the dll files from Tridion 2011 SP1 HR2\Content Delivery\dotNet\x86_64. This also had no effect.

Second update after more input

After all the troubleshooting yesterday I switched to a cleaner copy of the machine. Is has the same operating system and Tridion installation, but only has Java 1.6 update 26 installed, a version that is supported. I installed the odata service again according to the tutorial I referenced earlier. Still having the exact same exception.

The output of the java -version command: Java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Also checked if i currently use the right jar files. The installation package Tridion 2011 SP1\Content Delivery\roles\webservice\dotNet\x86_64\webservice.zip contains the exact jar files required according to SDL Live Content. That does not seem to be the problem.

Any help would be greatly appreciated of course, and i am happy to provide additional details if required.

  • What do you see when you type java -version from the command console? – Nickoli Roussakov Aug 4 '14 at 1:45
  • I updated my original post with the java -version output. – Oskar uit de Bos Aug 4 '14 at 20:59
5

Welcome to the Community and thanks for putting up a clear question with all the details needed. At the very first stage I see it as a Java version issue as jdk 1.7 is not officially supported for SDL Tridion 2011 SP1. Can you try installing jdk 1.6 (Not any of the specific version between 1.6.0.26 to 1.6.0.34) and try again.

I hope it should resolve the issue.

Still if you face issue, ensure following:

  • You copied correct JAR files (32-bit version or 64-bit version) according to your Operating System
  • If it is 32-bit version, ensure in IIS, the application pool for your service is set to enabled 32-bit applications
  • You may want to refer this useful link to refer to identify what all JAR files you need to include and what all you can omit: SDL Live Content (Require Login)
  • Hi Pankaj, thanks for the welcome and the quick help. Unfortunately your suggestions have not resolved the issue yet. I edited the original post with details. – Oskar uit de Bos Aug 3 '14 at 19:34
  • Have you also checked if in the lib folder, there is any jar which you might not be needing- For example something like ugc_web service.jar but the UGC module is not installed at all. You may identify all such module and try by removing these jar from your lib folder – Pankaj Gaur Aug 4 '14 at 1:15
  • Hi Pankaj, the installation package Tridion 2011 SP1\Content Delivery\roles\webservice\dotNet\x86_64\webservice.zip contains the exact jar files required according to SDL Live Content. That does not seem to be the problem. – Oskar uit de Bos Aug 4 '14 at 20:45
2

Everyone, thanks for the input and all the suggestions. The origin of this exception was in issue with the configuration files in the /bin/config folder. I overlooked one of the config files while copying them... :| The exception is gone and the normal "This is a Windows© Communication Foundation service." screen is now showing.

Just to clarity: This was done after I decided to switch to a cleaner copy of the machine only having Java 1.6 update 26 installed. I suggest to everyone to stick to a supported Java version to prevent installing/uninstalling and all the trouble that can come along with it.

1

I've never had issues with this one...

  • Double check your configuration files?
  • Triple-check your java installation (hint: open a command prompt and type java -version)

Any logs generated? Also check Windows event logs.

  • 1
    Hi Nuno, thanks for the suggestions. The issue turned out to be config file related. – Oskar uit de Bos Aug 4 '14 at 21:41
1

I suspect the install/uninstall of java 7 then 6 may have corrupted something. Try fully uninstalling java, reboot, then do a clean install.

Also, java 6 versions 26-30 are known to cause problems, and it just so happens you've got 26. See here: https://tridion.stackexchange.com/a/1854/159

Also take a look at Gurminder's comment in this post: http://www.tridiondeveloper.com/broken-tridion-publisher

"A client had same issue with Tranport Service. They had Java update set to automatic on servers. The solution was to uninstall and reinstall specific version of Java (1.6.0_26)."

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.