News

This week The apache Ignite book becomes one of the top books of leanpub

This week The apache Ignite book becomes one of the top books of leanpub.

Monday

Resolve "(MARSHAL) Exception" when deploying osb project on web logic through JMX client

Last week we decided to managing deployment of osb project on web logic cluster throw programmatic way. Throw simple JMX client, it's very easy to deploy and change the runtime configuration of the osb project. However the way to development of the simple client for deploying we got some confrontation, and the current post are all about these.
First of all Weblogic(10g R3) JMX implemention classes are no longer exists on weblogic.jar file. Thus, creating new proxy instance for DomainRuntimeServiceMBean might be through java native JMX clasess. However you could use wlfullclient.jar to build all the proxy client, on version 10gR3 oracle transfer all the web logic JMX implemention classes on wlfullclient.jar. Whenever you compile the project successfully and run the client, we found another runtime error related with "(MARSHAL) Exception". The runtime error are as follows:
01.06.2009 13:21:44 com.sun.corba.se.impl.encoding.CDRInputStream_1_0 read_value

WARNING: "IOP00810211: (MARSHAL) Exception from readValue on ValueHandler in CDRInputStream"

org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUti
lSystemException.java:6500)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:
1045)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327
)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:
1034)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:
879)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStr
eam_1_0.java:873)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStr
eam_1_0.java:863)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_abstract_interface(CDRInputStream.
java:269)
at com.sun.corba.se.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:363)
at com.sun.corba.se.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:526)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)
at java.util.HashMap.readObject(HashMap.java:1030)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.corba.se.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1694
)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1212)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327
)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:
1034)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327
)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:
1034)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1989)
at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2213)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1221)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327
)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:
1034)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:
879)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:249)
at com.sun.corba.se.impl.corba.TCUtility.unmarshalIn(TCUtility.java:269)
at com.sun.corba.se.impl.corba.AnyImpl.read_value(AnyImpl.java:559)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:73
... 61 more
IOException:CORBA MARSHAL 1398079699 Maybe; nested exception is:
org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe

At first i tried to googling on internet and found that, it is JVM bug. On many forums developers suggest to use same version of JVM on both side , client and the server. I have tried a few JVM include Jrockit on both side but all in vain.

After some experiment i discover that, my JMX client uses IIOP implemention of wlclient.jar instead of wlfullclient.jar. Therefore i delete the wlclient.jar from my classpath and vailo. Here are my POM.XML which i use to develop the JMX client.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ru.fors.weblogic</groupId>
<artifactId>jmxClient</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>jmxClient</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.bea</groupId>
<artifactId>sb-kernel-api</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>D:\Osb10gR3\osb_10.3\lib\sb-kernel-api.jar</systemPath>
</dependency>
<dependency>
<groupId>com.bea.wli</groupId>
<artifactId>sb-kernel-resources</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>D:\Osb10gR3\osb_10.3\lib\sb-kernel-resources.jar</systemPath>    
</dependency>
<dependency>
<groupId>com.bea.wli</groupId>
<artifactId>com.bea.common.configfwk_1.1.0.0</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>D:\Osb10gR3\modules\com.bea.common.configfwk_1.2.0.0.jar</systemPath>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wlfullclient</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>D:\beaWL\wlserver_10.3\server\lib\wlfullclient.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>compile</phase>   
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<workingDirectory>/target/classes</workingDirectory>
<arguments>
<argument>-classpath</argument>
<classpath/>
<argument>ru.fors.weblogic.JMX.Client</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>

5 comments :

mhaller said...

this is one of the worst pom's i've ever seen :(

you shall not use systempath. you shall not execute stuff in the compile lifecycle. that's totally against the philosophy.

Shamim Ahmed Bhuiyan, Ph.D. said...

Thank'x for your comment!
it's about maven you talked? Of course it's worest way to use systempath in Maven, remember it's just a agile way to show the use of JMX.
Yes, next time i will fix with it as install local copy all the libraries to mvn repositories.
Thank'x again

Geoff Ruscoe said...

Just wanted to let you know that your post helped me out with a problem I was having. Different app server, but same type of problem. On Glassfish the app launches fine with webstart but when I try to launch it manually from the IDE I was getting the error. Added more than the gf-client.jar (javaee.jar, jta.jar, and even a few others) and now I can easily develop and launch. Funny, eh? 2 1/2 years later and the post is still helping!

Biju K said...

Thanks buddy for your help. You saved my day :)

THIRUMALA KIRAN said...

Thanks. It helped me to solve issue.