JMSClientExceptions: Error deserializing an object
Hi I have a JMSQueue in Weblogis Server.
I am sending Message to JMS Queue. it is text or object.
Now I have created client to recieve the message.
But it is throwing following Exception.
An exception occurred: [JMSClientExceptions:055115]Error deserializing an object
My JMS Client for Recieving Message
String msgText = null;
Trade msgTrade = null;
if (msg instanceof TextMessage)
msgText = ((TextMessage)msg).getText();
else if(msg instanceof ObjectMessage)
ObjectMessage o = (ObjectMessage)msg;
msgTrade = (Trade)o.getObject();
System.out.println(msgTrade.getOperation());
msgText = msgTrade.getStockSymbol();
Java Object
public class Trade implements Serializable{
String stockSymbol;
String operation;
int noOfShares;
double price;
//getters & setters
}
Hi,
I am also getting the same exception. Could you please let me know how did you fix this?
Regards,
Prasad
Similar Messages
-
JMSClientException: Error deserializing an object
Hi,
I am getting an exception in the onMessage() of MDB. Below is the code from the onMessage() method.
public void onMessage(Message inMessage){
try{
ObjectMessage aiMessageModel=(ObjectMessage)inMessage;
if(inMessage instanceof ObjectMessage){
AIMessageModel objAIMessageModel =(AIMessageModel)aiMessageModel.getObject();
}catch(JMSException jmsException){
System.out.println(jmsException.getMessage());
System.out.println(jmsException.toString());
}catch(InvalidMessageException invalidMessageException ){
mdc.setRollbackOnly();
It gives following exception:
weblogic.jms.common.JMSException: [JMSClientExceptions:055115]Error deserializin
g an object
Any clues?
Regards,
PrasadHi Prasad,
When "ObjectMessage.getObject()" throws its often because either (A) an application class is missing from the classpath, or (B) there's a serialization version mismatch between the application class in the classpath and the object data stored in the object.
Examining the entire stack trace usually helps diagnose the problem.
Hopes this helps,
Tom -
Revision: 18926
Revision: 18926
Author: [email protected]
Date: 2010-12-01 14:07:19 -0800 (Wed, 01 Dec 2010)
Log Message:
bug fix BLZ-570 Double linked list with lot of objects result in BlazeDS Error deserializing error : StackOverflowError
We put hard limit to the max object nest level to prevent StackOverFlowError. the default max object nest level is 1024 and it can be configured in the endpoint/serialziation section in service-config.xml.
This needs documentation.
Checkintests pass
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-570
Modified Paths:
blazeds/trunk/modules/common/src/flex/messaging/errors.properties
blazeds/trunk/modules/core/src/flex/messaging/endpoints/AbstractEndpoint.java
blazeds/trunk/modules/core/src/flex/messaging/io/SerializationContext.java
blazeds/trunk/modules/core/src/flex/messaging/io/amf/Amf0Input.java
blazeds/trunk/modules/core/src/flex/messaging/io/amf/Amf3Input.java
blazeds/trunk/modules/core/src/flex/messaging/io/amf/AmfIO.java -
Revision: 20451
Revision: 20451
Author: [email protected]
Date: 2011-02-24 08:33:31 -0800 (Thu, 24 Feb 2011)
Log Message:
backporting bug fix BLZ-570/BLZ-620 Double linked list with lot of objects result in BlazeDS Error deserializing error : StackOverflowError We put hard limit to the max object nest level to prevent StackOverFlowError. the default max object nest level is 1024 and it can be configured in the endpoint/serialziation section in service-config.xml. This needs documentation. Checkintests pass
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-570
http://bugs.adobe.com/jira/browse/BLZ-620
Modified Paths:
blazeds/branches/4.0.0_fixes/modules/common/src/flex/messaging/errors.properties
blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/endpoints/AbstractEndpoint.j ava
blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/SerializationContext.java
blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/amf/Amf0Input.java
blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/amf/Amf3Input.java
blazeds/branches/4.0.0_fixes/modules/core/src/flex/messaging/io/amf/AmfIO.javaDear Pallavi,
Very useful post!
I am looking for similar accelerators for
Software Inventory Accelerator
Hardware Inventory Accelerator
Interfaces Inventory
Customization Assessment Accelerator
Sizing Tool
Which helps us to come up with the relevant Bill of Matetials for every area mentioned above, and the ones which I dont know...
Request help on such accelerators... Any clues?
Any reply, help is highly appreciated.
Regards
Manish Madhav -
Revision: 20443
Revision: 20443
Author: [email protected]
Date: 2011-02-23 21:19:22 -0800 (Wed, 23 Feb 2011)
Log Message:
back porting bug fix BLZ-570/BLZ-620 Double linked list with lot of objects result in BlazeDS Error deserializing error : StackOverflowError We put hard limit to the max object nest level to prevent StackOverFlowError. the default max object nest level is 1024 and it can be configured in the endpoint/serialziation section in service-config.xml. This needs documentation. Checkintests pass
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-570
http://bugs.adobe.com/jira/browse/BLZ-620
Modified Paths:
blazeds/branches/3.x/modules/common/src/java/flex/messaging/errors.properties
blazeds/branches/3.x/modules/core/src/java/flex/messaging/endpoints/AbstractEndpoint.java
blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/SerializationContext.java
blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/amf/Amf0Input.java
blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/amf/Amf3Input.java
blazeds/branches/3.x/modules/core/src/java/flex/messaging/io/amf/AmfIO.java -
JMS getObject() Error deserializing object for client
I am using WL6.1 and having a problem deserializing an object for a
client that doesn't have access to the corresponding implementation
object in its CLASSPATH (it only deals with the interface). From
previous posts, I read that upgrading to SP3 would fix this issue, but
I am still having this problem on both Solaris and Windows using SP3.
If I modify the client CLASSPATH to include the Server-side JAR file
that contains the implementation class, I don't have the problem and I
can successfully perform getObject() and deserialize the object. The
following is the code for the client:
public void onMessage(Message msg)
String msgText;
if(msg instanceof ObjectMessage)
try
ObjectMessage objMsg = (ObjectMessage) msg;
ActivityCreationEvent msgEvent =
(ActivityCreationEvent) objMsg.getObject();
System.out.println("Got a creation event");
catch(Exception ex)
System.out.println("Error getting JMS message:" + ex);
ex.printStackTrace();
the following is the code for the server:
objMsg = tSess.createObjectMessage(null);
ActivityCreationEvent createEvent=new ActivityCreationEventImpl();
objMsg.setObject(createEvent);
tPublisher.publish(objMsg);
and the following is the client stack trace:
Error getting JMS message:weblogic.jms.common.JMSException: Error
deserializing object
weblogic.jms.common.JMSException: Error deserializing object
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:141)
at com.test.producer.tck.CreateProducerByValue.onMessage(CreateProducerByValue.java:566)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:1865)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:1819)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.Kernel.execute(Kernel.java:257)
at weblogic.kernel.Kernel.execute(Kernel.java:269)
----------- Linked Exception -----------
at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:1733)
at weblogic.jms.client.JMSSession.invoke(JMSSession.java:2075)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:510)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:149)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchOneWay(DispatcherImpl.java:429)
at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
java.lang.ClassNotFoundException:
com.test.activity.ri.ActivityCreationEventImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:183)
at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:281)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at weblogic.jms.common.ObjectMessageImpl$ObjectInputStream2.resolveClass(ObjectMessageImpl.java:277)
at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:913)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:361)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1181)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:127)
at com.test.producer.tck.CreateProducerByValue.onMessage(CreateProducerByValue.java:566)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:1865)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:1819)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.Kernel.execute(Kernel.java:257)
at weblogic.kernel.Kernel.execute(Kernel.java:269)
at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:1733)
at weblogic.jms.client.JMSSession.invoke(JMSSession.java:2075)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:510)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:149)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchOneWay(DispatcherImpl.java:429)
at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
The client doesn't need to have access to the implementation class for
any other aspect of the code, and I would like to keep it that way.
Does anyone have information as to the cause of the problem and a
solution?
Thanks in advance
Hi James,
Just having the interface is not sufficient, as the JVM must be able to
find the implementation class of an object in order to unserialize it - this is not a WebLogic
thing, it is a java thing. Either package the required class in the .ear that contains
the MDB or put it in your classpath.
Tom
James J wrote:
> I am using WL6.1 and having a problem deserializing an object for a
> client that doesn't have access to the corresponding implementation
> object in its CLASSPATH (it only deals with the interface). From
> previous posts, I read that upgrading to SP3 would fix this issue, but
> I am still having this problem on both Solaris and Windows using SP3.
> If I modify the client CLASSPATH to include the Server-side JAR file
> that contains the implementation class, I don't have the problem and I
> can successfully perform getObject() and deserialize the object. The
> following is the code for the client:
>
> public void onMessage(Message msg)
> {
> String msgText;
>
> if(msg instanceof ObjectMessage)
> {
> try
> {
> ObjectMessage objMsg = (ObjectMessage) msg;
> ActivityCreationEvent msgEvent =
> (ActivityCreationEvent) objMsg.getObject();
> System.out.println("Got a creation event");
> }
> catch(Exception ex)
> {
> System.out.println("Error getting JMS message:" + ex);
> ex.printStackTrace();
> }
> }
> }
>
> the following is the code for the server:
>
> objMsg = tSess.createObjectMessage(null);
> ActivityCreationEvent createEvent=new ActivityCreationEventImpl();
> objMsg.setObject(createEvent);
> tPublisher.publish(objMsg);
>
> and the following is the client stack trace:
>
> Error getting JMS message:weblogic.jms.common.JMSException: Error
> deserializing object
> weblogic.jms.common.JMSException: Error deserializing object
> at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:141)
> at com.test.producer.tck.CreateProducerByValue.onMessage(CreateProducerByValue.java:566)
> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:1865)
> at weblogic.jms.client.JMSSession.execute(JMSSession.java:1819)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.Kernel.execute(Kernel.java:257)
> at weblogic.kernel.Kernel.execute(Kernel.java:269)
> ----------- Linked Exception -----------
> at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:1733)
> at weblogic.jms.client.JMSSession.invoke(JMSSession.java:2075)
> at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:510)
> at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:149)
> at weblogic.jms.dispatcher.DispatcherImpl.dispatchOneWay(DispatcherImpl.java:429)
> at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown
> Source)
> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
> java.lang.ClassNotFoundException:
> com.test.activity.ri.ActivityCreationEventImpl
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:183)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:281)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:190)
> at weblogic.jms.common.ObjectMessageImpl$ObjectInputStream2.resolveClass(ObjectMessageImpl.java:277)
> at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:913)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:361)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
> at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1181)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
> at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:127)
> at com.test.producer.tck.CreateProducerByValue.onMessage(CreateProducerByValue.java:566)
> at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:1865)
> at weblogic.jms.client.JMSSession.execute(JMSSession.java:1819)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.Kernel.execute(Kernel.java:257)
> at weblogic.kernel.Kernel.execute(Kernel.java:269)
> at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:1733)
> at weblogic.jms.client.JMSSession.invoke(JMSSession.java:2075)
> at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:510)
> at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:149)
> at weblogic.jms.dispatcher.DispatcherImpl.dispatchOneWay(DispatcherImpl.java:429)
> at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown
> Source)
> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>
> The client doesn't need to have access to the implementation class for
> any other aspect of the code, and I would like to keep it that way.
> Does anyone have information as to the cause of the problem and a
> solution?
>
> Thanks in advance
-
Hi all,
I am posting a serializable object as message to MDB Queue and trying to deserialize it in onMessage() method. But, getting below error
"Exception in onMessage weblogic.jms.common.JMSException: Error deserializing object"
Here is my onMessage method. Please help me !!!
public void onMessage(Message msg) {
ProcessQuery prQuery = null;
try {
ObjectMessage message = (ObjectMessage) msg;
ProcessQuery pQ = (ProcessQuery) message.getObject();
prQuery = pQ.execute();
catch(JMSException ex) {
System.out.println("Exception in onMessage " + ex);
ex.printStackTrace();
ProcessQuery is a serializable object.
Thanks in advance,
AnithaHi all,
I am posting a serializable object as message to MDB Queue and trying to deserialize it in onMessage() method. But, getting below error
"Exception in onMessage weblogic.jms.common.JMSException: Error deserializing object"
Here is my onMessage method. Please help me !!!
public void onMessage(Message msg) {
ProcessQuery prQuery = null;
try {
ObjectMessage message = (ObjectMessage) msg;
ProcessQuery pQ = (ProcessQuery) message.getObject();
prQuery = pQ.execute();
catch(JMSException ex) {
System.out.println("Exception in onMessage " + ex);
ex.printStackTrace();
ProcessQuery is a serializable object.
Thanks in advance,
Anitha -
Error in sending object via a JMS..
The JMS is giving me error when i am sending an object via a sender...i am using point to point,...and Weblogic server....
the whole thing of object sending works when i run it in two different consoles...i
but when i move to webworld....i e tomcat it shows me the following exception.....
weblogic.jms.common.JMSException: Error deserializing object
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:144)
at intertec.jms.ObjectReceiver1.onMessage(ObjectReceiver1.java:64)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.Kernel.execute(Kernel.java:336)
at weblogic.kernel.Kernel.execute(Kernel.java:360)
at weblogic.kernel.Kernel.execute(Kernel.java:348)
at weblogic.jms.client.JMSSession.pushMessage(JMSSession.java:2392)
at weblogic.jms.client.JMSSession.invoke(JMSSession.java:2919)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:609)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsyncInternal(DispatcherImpl.java:128)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchOneWay(DispatcherImpl.java:312)
at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Caused by: java.lang.ClassNotFoundException: intertec.beans.Emp
at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:891)
at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:756)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:219)
at weblogic.jms.common.ObjectMessageImpl$ObjectInputStream2.resolveClass(ObjectMessageImpl.java:305)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at java.util.Hashtable.readObject(Hashtable.java:841)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:130)
... 21 more
thanks in advance....
regards
ullasYou are missing a class:
Caused by: java.lang.ClassNotFoundException: intertec.beans.Emp -
Error deserializing arguments, xml tag without a recognized type
I am trying to run a webservice created using Weblogic Workshop 8.1sp2 that communicates
with an ejb control. When I test in debug mode, I get the above error, specifically:
<detail>
<jwErr:jwErrorDetail xmlns:jwErr="http://www.bea.com/2002/04/jwErrorDetail/">
com.bea.wlw.runtime.core.request.RequestValidationException: Error deserializing
arguments.
Encountered an xml tag without a recognized type: the type must be declared with
an xsi:type attribute.
Caused by: com.bea.xml.marshal.XmlEncodingException: Encountered an xml tag with
out a recognized type: the type must be declared with an xsi:type attribute.
</detail>
I am passing a Request object to the jws method (to the ejb) that has a Collection
as an instance member. This Collection references objects of another type, Param
(code for both objects below). Before passing the object, I convert the Collection
to an array of objects. When I call the operation via a java client, I get the
above message.
In Workshop, I've included the Request and Param classes as the parameter xml
and the soap style is rpc. I've tested the ejb by itself and it is working fine.
Request.java:
import java.util.*;
public class Request implements java.io.Serializable
protected Collection params=null;
public Collection getParams()
{ return params; }
public void setParams(Collection data)
{ params=data; }
Param.java:
public class Param implements java.io.Serializable
private String name=null;
private Object value=null;
public String getName()
{ return name; }
public void setName(String data)
{ name = data; }
public Object getValue()
{ return value; }
public void setValue(Object data)
{ value=data; }
Here's the code from the jws:
public class MyWS implements com.bea.jws.WebService
* @common:control
private control.PSEjbControl psEJB;
static final long serialVersionUID = 1L;
* @common:operation
* @jws:parameter-xml
* include-java-types="mypackage.Request mypackage.Param"
* @jws:protocol soap-style="rpc"
public void addData(mypackage.Request arg0) throws java.rmi.RemoteException
System.out.println("arg0 : " + arg0);
psEJB.addData(arg0);
*Note: in the server console, arg0 comes through as null when called from my client.
Here's the bit from my client:
import weblogic.jws.proxies.*;
import org.openuri.www.encodedTypes.Request;
import org.openuri.www.encodedTypes.Param;
public void go(String wsdl) throws Exception {
MyWSSoap mw = null;
mw = new MyWS_Impl().getMyWSSoap();
Request req = new Request();
Collection reqColl = new ArrayList();
Param param1 = new Param();
param1.setName("NAME");
param1.setValue("Joe Tester");
Param param2 = new Param();
param2.setName("ADDRESS");
param2.setValue("345 Test Drive");
reqColl.add(param1);
reqColl.add(param2);
Object[] obs = reqColl.toArray();
req.setParams(obs);
mw.addData(req);
Not sure if this enough to go by. Please let me know if you need more information.
Any help is really appreciated. Thanks.Hi Keith,
My only suggestion is to factor out the java.util.Collection (see the
docs here [1]) with either primitive types or XMLBeans [2].
Sorry, not much help. You might also ask your question in the workshop
[3] newsgroup.
Bruce
[1]
http://e-docs.bea.com/workshop/docs81/doc/en/integration/reference/refJavaClassConversion.html
[2]
http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/xmlbeans/conXMLBeansSupportBuiltInSchemaTypes.html
[3]
http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=xover&group=weblogic.developer.interest.workshop
Keith wrote:
>
Hi Bruce, thanks for the reply. I set the operation for document-style soap and
still get the deserialization exception as mentioned in my original note. Below
is the wsdl. Note: in my original note, the problematic operation was addData()
which is now named addBusinessLocation(). As always, your help is greatly appreciated.
Keith
<?xml version="1.0" encoding="utf-8"?>
<!-- @editor-info:link autogen="true" source="PublicServiceWS.jws" -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/"
xmlns:cw="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:jms="http://www.openuri.org/2002/04/wsdl/jms/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.openuri.org/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
targetNamespace="http://www.openuri.org/">
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.openuri.org/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:ope="http://www.openuri.org/">
<s:element name="addBusinessLocation">
<s:complexType>
<s:sequence>
<s:element name="arg0" type="ope:Request" minOccurs="0"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="addBusinessLocationResponse">
<s:complexType>
<s:sequence/>
</s:complexType>
</s:element>
<s:element name="getBusinessLocation">
<s:complexType>
<s:sequence/>
</s:complexType>
</s:element>
<s:element name="getBusinessLocationResponse">
<s:complexType>
<s:sequence>
<s:element name="getBusinessLocationResult" type="ope:Response" minOccurs="0"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Response" nillable="true" type="ope:Response"/>
<s:element name="repeat">
<s:complexType>
<s:sequence>
<s:element name="in" type="s:string" minOccurs="0"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="repeatResponse">
<s:complexType>
<s:sequence>
<s:element name="repeatResult" type="s:string" minOccurs="0"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="string" nillable="true" type="s:string"/>
<s:complexType name="Request">
<s:sequence>
<s:element name="Params" type="ope:Collection" minOccurs="0"/>
</s:sequence>
</s:complexType>
<s:complexType name="Collection">
<s:sequence>
<s:element name="item" type="s:anyType" nillable="true" minOccurs="0"
maxOccurs="unbounded"/>
</s:sequence>
</s:complexType>
<s:complexType name="Param">
<s:sequence>
<s:element name="Name" type="s:string" minOccurs="0"/>
<s:element name="Value" type="s:anyType" minOccurs="0"/>
</s:sequence>
</s:complexType>
<s:complexType name="Response">
<s:complexContent>
<s:extension base="ope:Request">
<s:sequence/>
</s:extension>
</s:complexContent>
</s:complexType>
</s:schema>
</types>
<message name="addBusinessLocationSoapIn">
<part name="parameters" element="s0:addBusinessLocation"/>
</message>
<message name="addBusinessLocationSoapOut">
<part name="parameters" element="s0:addBusinessLocationResponse"/>
</message>
<message name="getBusinessLocationSoapIn">
<part name="parameters" element="s0:getBusinessLocation"/>
</message>
<message name="getBusinessLocationSoapOut">
<part name="parameters" element="s0:getBusinessLocationResponse"/>
</message>
<message name="repeatSoapIn">
<part name="parameters" element="s0:repeat"/>
</message>
<message name="repeatSoapOut">
<part name="parameters" element="s0:repeatResponse"/>
</message>
<message name="getBusinessLocationHttpGetIn"/>
<message name="getBusinessLocationHttpGetOut">
<part name="Body" element="s0:Response"/>
</message>
<message name="repeatHttpGetIn">
<part name="in" type="s:string"/>
</message>
<message name="repeatHttpGetOut">
<part name="Body" element="s0:string"/>
</message>
<message name="getBusinessLocationHttpPostIn"/>
<message name="getBusinessLocationHttpPostOut">
<part name="Body" element="s0:Response"/>
</message>
<message name="repeatHttpPostIn">
<part name="in" type="s:string"/>
</message>
<message name="repeatHttpPostOut">
<part name="Body" element="s0:string"/>
</message>
<portType name="PublicServiceWSSoap">
<operation name="addBusinessLocation">
<input message="s0:addBusinessLocationSoapIn"/>
<output message="s0:addBusinessLocationSoapOut"/>
</operation>
<operation name="getBusinessLocation">
<input message="s0:getBusinessLocationSoapIn"/>
<output message="s0:getBusinessLocationSoapOut"/>
</operation>
<operation name="repeat">
<input message="s0:repeatSoapIn"/>
<output message="s0:repeatSoapOut"/>
</operation>
</portType>
<portType name="PublicServiceWSHttpGet">
<operation name="getBusinessLocation">
<input message="s0:getBusinessLocationHttpGetIn"/>
<output message="s0:getBusinessLocationHttpGetOut"/>
</operation>
<operation name="repeat">
<input message="s0:repeatHttpGetIn"/>
<output message="s0:repeatHttpGetOut"/>
</operation>
</portType>
<portType name="PublicServiceWSHttpPost">
<operation name="getBusinessLocation">
<input message="s0:getBusinessLocationHttpPostIn"/>
<output message="s0:getBusinessLocationHttpPostOut"/>
</operation>
<operation name="repeat">
<input message="s0:repeatHttpPostIn"/>
<output message="s0:repeatHttpPostOut"/>
</operation>
</portType>
<binding name="PublicServiceWSSoap" type="s0:PublicServiceWSSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="addBusinessLocation">
<soap:operation soapAction="http://www.openuri.org/addBusinessLocation"
style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="getBusinessLocation">
<soap:operation soapAction="http://www.openuri.org/getBusinessLocation"
style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="repeat">
<soap:operation soapAction="http://www.openuri.org/repeat" style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<binding name="PublicServiceWSHttpGet" type="s0:PublicServiceWSHttpGet">
<http:binding verb="GET"/>
<operation name="getBusinessLocation">
<http:operation location="/getBusinessLocation"/>
<input>
<http:urlEncoded/>
</input>
<output>
<mime:mimeXml part="Body"/>
</output>
</operation>
<operation name="repeat">
<http:operation location="/repeat"/>
<input>
<http:urlEncoded/>
</input>
<output>
<mime:mimeXml part="Body"/>
</output>
</operation>
</binding>
<binding name="PublicServiceWSHttpPost" type="s0:PublicServiceWSHttpPost">
<http:binding verb="POST"/>
<operation name="getBusinessLocation">
<http:operation location="/getBusinessLocation"/>
<input>
<mime:content type="application/x-www-form-urlencoded"/>
</input>
<output>
<mime:mimeXml part="Body"/>
</output>
</operation>
<operation name="repeat">
<http:operation location="/repeat"/>
<input>
<mime:content type="application/x-www-form-urlencoded"/>
</input>
<output>
<mime:mimeXml part="Body"/>
</output>
</operation>
</binding>
<service name="PublicServiceWS">
<port name="PublicServiceWSSoap" binding="s0:PublicServiceWSSoap">
<soap:address location="http://localhost:8010/WebService/PublicServiceWS.jws"/>
</port>
<port name="PublicServiceWSHttpGet" binding="s0:PublicServiceWSHttpGet">
<http:address location="http://localhost:8010/WebService/PublicServiceWS.jws"/>
</port>
<port name="PublicServiceWSHttpPost" binding="s0:PublicServiceWSHttpPost">
<http:address location="http://localhost:8010/WebService/PublicServiceWS.jws"/>
</port>
</service>
</definitions>
Bruce Stephens <[email protected]> wrote:
Hi Keith,
As a quick test, you might try changing the protocol style to use
doc/lit (@jws:protocol soap-style="document") to see if this provides
another view on the real issue.
Could you post the generated WSDL?
Thanks,
Bruce
Keith wrote:
I am trying to run a webservice created using Weblogic Workshop 8.1sp2that communicates
with an ejb control. When I test in debug mode, I get the above error,specifically:
<detail>
<jwErr:jwErrorDetail xmlns:jwErr="http://www.bea.com/2002/04/jwErrorDetail/">
com.bea.wlw.runtime.core.request.RequestValidationException: Errordeserializing
arguments.
Encountered an xml tag without a recognized type: the type must bedeclared with
an xsi:type attribute.
Caused by: com.bea.xml.marshal.XmlEncodingException: Encountered anxml tag with
out a recognized type: the type must be declared with an xsi:type attribute.
</detail>
I am passing a Request object to the jws method (to the ejb) that hasa Collection
as an instance member. This Collection references objects of anothertype, Param
(code for both objects below). Before passing the object, I convertthe Collection
to an array of objects. When I call the operation via a java client,I get the
above message.
In Workshop, I've included the Request and Param classes as the parameterxml
and the soap style is rpc. I've tested the ejb by itself and it isworking fine.
Request.java:
import java.util.*;
public class Request implements java.io.Serializable
protected Collection params=null;
public Collection getParams()
{ return params; }
public void setParams(Collection data)
{ params=data; }
Param.java:
public class Param implements java.io.Serializable
private String name=null;
private Object value=null;
public String getName()
{ return name; }
public void setName(String data)
{ name = data; }
public Object getValue()
{ return value; }
public void setValue(Object data)
{ value=data; }
Here's the code from the jws:
public class MyWS implements com.bea.jws.WebService
* @common:control
private control.PSEjbControl psEJB;
static final long serialVersionUID = 1L;
* @common:operation
* @jws:parameter-xml
* include-java-types="mypackage.Request mypackage.Param"
* @jws:protocol soap-style="rpc"
public void addData(mypackage.Request arg0) throws java.rmi.RemoteException
System.out.println("arg0 : " + arg0);
psEJB.addData(arg0);
*Note: in the server console, arg0 comes through as null when calledfrom my client.
Here's the bit from my client:
import weblogic.jws.proxies.*;
import org.openuri.www.encodedTypes.Request;
import org.openuri.www.encodedTypes.Param;
public void go(String wsdl) throws Exception {
MyWSSoap mw = null;
mw = new MyWS_Impl().getMyWSSoap();
Request req = new Request();
Collection reqColl = new ArrayList();
Param param1 = new Param();
param1.setName("NAME");
param1.setValue("Joe Tester");
Param param2 = new Param();
param2.setName("ADDRESS");
param2.setValue("345 Test Drive");
reqColl.add(param1);
reqColl.add(param2);
Object[] obs = reqColl.toArray();
req.setParams(obs);
mw.addData(req);
Not sure if this enough to go by. Please let me know if you need moreinformation.
Any help is really appreciated. Thanks. -
Error in updating object SURVEY
Hi Experts,
The following error occurs not always but very rarely while updating the notes field or while saving an Activity.
SAP Note
The following error text was processed in the system P60:
Error in updating object SURVEY
The error occurred on the application server crmpcs2c_P60_09 and in the work process 6.
The termination type was: ABORT_MESSAGE_STATE
The ABAP call stack was:
Function: CRM_SURVEY_UPDATE_DY of program SAPLCRM_SURVEY_DU
Form:CRM_SURVEY_UPDATE_DY of program SAPLCRM_SURVEY_DU
Form:%_UPDATES_NO_UTASK of program SAPMSSY4
Form: LOCAL_UPDATE_TASK of program SAPMSSY4
START-OF-SELECTION of Program SAPMSSY4
Could you help me in this regard.
Thanks in Advance.
I will reward full points to the expert.
Regards,
Madhura.Hi Gervase,
No, but there was an associated dump in the transaction SM13.
Here is the detail:
Function Module: CRM_SURVEY_UPDATE_DU
Status: Update was terminated
Report: LCRM_SURVEY_DUU02
Row: 94
Error details Class: CRM_ORDER_MISC Number: 002
Error in updating object SURVEY
Thanks in Advance.
Regards,
Gabriel. -
"An error has occurred:Object reference not set to an instance of an object."
This error message comes up with a user in InfoView. The user schedules a report, updates parameters, and the report kicks off successfully. But then a few minutes later, this error is received. This occurs sporadically, regardless of the length of time of report or amount of data being retrieved. Sometimes the report runs to completion. Other times this error message occurs.
Has anyone seen this before and have any thoughts?
Thank you.
“An error has occurred:Object reference not set to an instance of an object.”Are you able to replicate the issue both in Java and .NET InfoView?
For .NET InfoView, sometimes the "An error has occurred: Object reference not set to an instance of an object" error shows up after the .NET Framework is upgraded to 2.0 -
Error while migrating object from PI 7.0 to pi 7.1
Hi All,
I am migrating IR and ID object from PI 7.0 to PI 7.1 using file system.
IR oject got imported sucessfully in ESR but ID after importing when i tried to activate the objects in change list i am facing the following error. Does anyone have any idea about the error.
Internal error while checking object Communication Channel: | XIXREF_C | File_FileXref_Sender_XrefFlat_CC; see details++
Attempt to access the 1 requested objects on 1 failed
Detailed information:
com.sap.aii.ib.core.roa.RoaObjectAccessException:
Attempt to read object Adapter Metadata File | http://sap.com/xi/XI/System,
type AdapterMetaData from application REPOSITORY on++
system REPOSITORY failed. Object does not exist. Detailed
informatio n: Software component version with key ID:
b38bcd00e47111d7afacde420a1145a5 not found (ROA_MOA_NOTCOMPLETED)
Thanks
Kasturika PhukanHi Kasturika,
Check whether the metadata for the particular adapter in the BASIS SWCV exists or not.
I hope you are refering to the following guide while transferring from PI 7.0 to PI 7.1
[Move Scenarios from 7.0 to 7.1|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/90baf3dd-dbf9-2b10-47aa-ac5f56bb5030]
Regards,
Gautam Purohit -
Add ABAP program: validating package - error accessing shared objects-area
When adding a new program or browsing the packages in eclipse i get an "error accessing shared objects-area".
I can edit, save and run existing ABAP reports, however.
There was a similar problem here, regarding database procedure proxies but the solution doesn't apply to my problem, i guess. The solution was about creating the shared memory area CL_RIS_SHM_AREA. I can't access the memory area and start the constructor, as it doesn't show up on the monitor.
ADT 2.28
Eclipse 4.3
Netweaver 7.31 SP4 -> is this really compatible with ADT 2.28?
Thanks in advance for helpful hints,
JulianHI Julian,
if the area doesn't show up in the monitor, please try to start the constructor in transaction SHMM on your own by selecting the icon 'Start Constructor' as shown in the screenshot.
Choose CL_RIS_SHM_AREA as area, select 'Default Instance' and 'Dialog' as execution mode. Then press 'Create'. Either this works or the system will tell you the issue with the instance creation (e.g. insufficient shared objects memory - see the other solution description).
Best regards, Sebastian -
Hi,
After submitting the request for an application when i click on edit to make some changes in web console the form for editing pops out. When i change the field values and again submit am getting an error like 'Error in editing Object Form .After request is submitted, data canot be added, updated or deleted any further by the requestor'. This happens only for applications which are having a child form. Please let me know the solution for this issue. Thanks in advance.
Regards,
DurgaprasadI have given permission to all users in the object from. This problem is not happening for all applications. Only for applications which are having child form the problem is there. When i debugged the custom UI code the error displayed in console is 'Error in editing Object Form .After request is submitted, data canot be added, updated or deleted any further by the requestor'. Thanks.
-
Error "Invalid Report Object" when running any CR
Hi, I have installed BO XI V3.1 and upgraded to 1.4 level.
However when logged into the infoview app, if i browse to any 2008 report i have uploaded into the enterprise system and double click to run i get the error "Invalid Report Object".
This is also true if i try to run any report in the Public Folders \ Report Samples folder.
Nothing will display for me but they run fine in CR 2008, just not via the web tool.
Any help on this will be much appreciated.
C.Hi,
Is this issue after you have upgraded to 1.4 or was this issue occurring before?
Since the reports are running properly in the designer please try to do following steps:-
1) Open the report in the designer which is not working in enterprise
2) Refresh the report in CR designer
3) Save the report back to the enterprise and make sure save with data is checked.
4) Now open the report in the Enterprise and check it works or not.
The reason of doing this is that to generate new PID's for the reports if after the upgrade the PID's have changed or has became corrupt.
Maybe you are looking for
-
Context Sensitive Help in Browser based AIR
Hi, I have looked through all the posts here and it doesn't help. I am using RH8, fully updated. I am coming from a html web page, part of an AJAX applications output, and I need to get to the right page in AIR, which is the only Help I can find that
-
How to call Operating System commands / external programs from within APEX
Hi, Can someone please suggest how to call Operating Systems commands / external programs from within APEX? E.g. say I need to run a SQL script on a particular database. SQL script, database name, userid & password everything is available in a table
-
Printing line only after all the records of line item are finished
HI I have the following table : FieldA FieldC FieldD 10 1 CM 10 3 CCM 20 6 M Right now i am able to print in samrtform like this FieldA FieldC FieldD 10
-
Internal error in Salary Statement service
Hi Someone can help with this issue. We are not able to get the payslip. In R3, we use a form created with PE51 and we have a variant for this. I already updated feature EDTIN with the variant name and HRFOR with $CEDT$ for C ESS. Following error is
-
Microsoft in their infinite wisdom has decided that Compatibility View is to be treated as Browsing History and therefore cleared on closure of the current Window. Wonderful stuff! We deal with lots of sites that are developed for IE7 such as Banks