Mapping complex objects to DataGridColumn
Hi there,
I'm having some problems with my mapping to my datagrid.
My list is filled with object of the type Address. Each Address object contains a property called city, which is an object of the type City.
So, I'm mapping the column city of my DataGrid to the property city.name. Therefore, when I run my code, nothing is showed in that column.
Is Flex able to perform this kind of mapping?
Thanks in advance.
Roberto.
That should be supported in 3.4.
Alex Harui
Flex SDK Developer
Adobe Systems Inc.
Blog: http://blogs.adobe.com/aharui
Similar Messages
-
Complex object as parameter from BPEL PM to Web Service
Hello,
I'm having a problem with being able to invoke a method on my web service from BPEL PM. It's a 'create' method, so I'm sending a complex object as the input parameter of the method.
I'm encountering the same kind of problems I have at different stages in the project I'm on: SOA works really well as long as you don't use complex objects. As soon as you do, SimpleDeserializer exceptions seem to be thrown all over the place. In this case, the error I'm getting is:
<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
<part name="code">
<code>Server.userException</code>
</part>
<part name="summary">
<summary>when invoking endpointAddress 'http://covarm.tvu.ac.uk/validationEvent/services/validationEventSOAP', org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.</summary>
</part>
<part name="detail">
<detail>AxisFault faultCode: {http://xml.apache.org/axis/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:188) at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:684) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:207) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:265) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:190) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:276) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:316) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source)</detail>
</part>
</remoteFault>
The WSDL is at:
http://covarm.tvu.ac.uk/validationEvent/wsdl/validationEventSOAP.wsdl
I'm invoking the 'createEvent' method. I know the service works okay because I've tested it with Rational Software Architect and Eclipse's Web Services Explorer, and also with standalone code and JUnit tests.
The problem seems to be getting the mapping from BPEL PM to the Web Service. I'm sending the object as a message type that's defined in the WSDL of the service:
<xsd:element name="createEventRequest" type="tns:event" />
- <xsd:complexType name="event">
- <xsd:sequence>
<xsd:element name="event-detail" type="tns:event-detail" />
<xsd:element name="proposed-dates" type="tns:proposed-dates" />
<xsd:element name="panel" type="tns:panel" />
<xsd:element name="development-team" type="tns:development-team" />
<xsd:element name="minute" type="xsd:string" />
<xsd:element name="feedback-list" type="tns:feedback-list" />
</xsd:sequence>
</xsd:complexType>
Is this something that's
a) fixable?
b) workaroundable?
c) a known issue?
Thanks,
DanBefore I start crying at my own impotence, how can I configure the bpel.xml file (for obtunnel_ when it looks like this?
<?xml version = '1.0' encoding = 'UTF-8'?>
<BPELSuitcase>
<BPELProcess id="RunValidationEvent" src="RunValidationEvent.bpel">
<partnerLinkBindings>
<partnerLinkBinding name="client">
<property name="wsdlLocation">RunValidationEvent.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="validationEvent">
<property name="wsdlLocation">validationEventSOAPRef.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="notification">
<property name="wsdlLocation">notificationSOAPRef.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="TaskManagerService">
<property name="wsdlLocation">TaskManagerService.wsdl</property>
<property name="wsdlRuntimeLocation">${domain_url}/TaskActionHandler/TaskManagerService.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="TaskRoutingService">
<property name="wsdlLocation">TaskRoutingService.wsdl</property>
<property name="wsdlRuntimeLocation">${domain_url}/TaskActionHandler/TaskRoutingService.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="TaskActionHandler">
<property name="wsdlLocation">TaskActionHandler.wsdl</property>
<property name="wsdlRuntimeLocation">${domain_url}/TaskActionHandler/TaskActionHandler?wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="IdentityService">
<property name="wsdlLocation">LocalIdentityService.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="processParticipant">
<property name="wsdlLocation">processParticipantSOAPRef.wsdl</property>
</partnerLinkBinding>
</partnerLinkBindings>
<activationAgents>
<activationAgent className="oracle.tip.pc.services.hw.task.impl.TaskActivationAgent" partnerLink="TaskManagerService"/>
</activationAgents>
</BPELProcess>
</BPELSuitcase>
Or is it that I'm using local wsdl refs when I should be defining a partner likk in my web service wsdl? -
Passing complex object from bpel process to web service
I have deployed my web service on apache axis.The wsdl file looks like as follows,
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://bpel.jmetro.actiontech.com" xmlns:intf="http://bpel.jmetro.actiontech.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="ADLevelBpelWS">
- <sequence>
<element name="adLevelStr" nillable="true" type="xsd:string" />
<element name="id" type="xsd:int" />
</sequence>
</complexType>
- <complexType name="TransResultWS">
- <sequence>
<element name="description" nillable="true" type="xsd:string" />
<element name="id" type="xsd:long" />
<element name="responseType" type="xsd:int" />
<element name="status" type="xsd:boolean" />
</sequence>
</complexType>
- <complexType name="NamespaceDataImplBpelWS">
- <sequence>
<element name="ADLevel" nillable="true" type="impl:ADLevelBpelWS" />
<element name="appdataDef" nillable="true" type="apachesoap:Map" />
<element name="description" nillable="true" type="xsd:string" />
<element name="name" nillable="true" type="xsd:string" />
</sequence>
</complexType>
- <complexType name="CreateSharedNamespaceBpelWS">
- <sequence>
<element name="actor" nillable="true" type="xsd:string" />
<element name="comment" nillable="true" type="xsd:string" />
<element name="from" nillable="true" type="xsd:string" />
<element name="namespaceData" nillable="true" type="impl:NamespaceDataImplBpelWS" />
<element name="priority" type="xsd:int" />
<element name="processAtTime" nillable="true" type="xsd:dateTime" />
<element name="replyTo" nillable="true" type="xsd:string" />
<element name="responseRequired" type="xsd:boolean" />
</sequence>
</complexType>
</schema>
- <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
- <complexType name="mapItem">
- <sequence>
<element name="key" nillable="true" type="xsd:string" />
<element name="value" nillable="true" type="xsd:string" />
</sequence>
</complexType>
- <complexType name="Map">
- <sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
</sequence>
</complexType>
</schema>
</wsdl:types>
+ <wsdl:message name="createNamespaceRequest">
<wsdl:part name="createNs" type="impl:CreateSharedNamespaceBpelWS" />
</wsdl:message>
- <wsdl:message name="createNamespaceResponse">
<wsdl:part name="createNamespaceReturn" type="impl:TransResultWS" />
</wsdl:message>
- <wsdl:portType name="JMetroWebService">
- <wsdl:operation name="createNamespace" parameterOrder="createNs">
<wsdl:input message="impl:createNamespaceRequest" name="createNamespaceRequest" />
<wsdl:output message="impl:createNamespaceResponse" name="createNamespaceResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="NAMESPACEWITHMAPSoapBinding" type="impl:JMetroWebService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="createNamespace">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="createNamespaceRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
</wsdl:input>
- <wsdl:output name="createNamespaceResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="JMetroWebServiceService">
- <wsdl:port binding="impl:NAMESPACEWITHMAPSoapBinding" name="NAMESPACEWITHMAP">
<wsdlsoap:address location="http://localhost:7001/axis/services/NAMESPACEWITHMAP" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
My NamespaceDataObjectImplBpelWS object contains element appDataDef which is of type java.util.Map.My bpel wsdl file is as below,
<?xml version="1.0"?>
<definitions name="NsWithMap"
targetNamespace="http://bpel.jmetro.actiontech.com"
xmlns:tns="http://bpel.jmetro.actiontech.com"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPE DEFINITION - List of services participating in this BPEL process
The default output of the BPEL designer uses strings as input and
output to the BPEL Process. But you can define or import any XML
Schema type and us them as part of the message types.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<types>
<schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<element name="createNamespace" type="tns:CreateSharedNamespaceBpelWS"/>
<element name="transResult" type="tns:TransResultWS"/>
<complexType name="TransResultWS">
<sequence>
<element name="description" type="string" />
<element name="id" type="long" />
<element name="responseType" type="int" />
<element name="status" type="boolean" />
</sequence>
</complexType>
<complexType name="ADLevelBpelWS">
<sequence>
<element name="adLevelStr" type="string" />
<element name="id" type="int" />
</sequence>
</complexType>
<complexType name="NamespaceDataImplBpelWS">
<sequence>
<element name="ADLevel" type="tns:ADLevelBpelWS" />
<element name="description" type="string" />
<element name="name" type="string" />
<element name="appdataDef" type="apachesoap:Map" />
</sequence>
</complexType>
<complexType name="CreateSharedNamespaceBpelWS">
<sequence>
<element name="namespaceData" type="tns:NamespaceDataImplBpelWS" />
</sequence>
</complexType>
<element name="desc" type="string"/>
</schema>
<schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="mapItem">
<sequence>
<element name="key" type="string" />
<element name="value" type="string" />
</sequence>
</complexType>
<complexType name="Map">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
</sequence>
</complexType>
</schema>
</types>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MESSAGE TYPE DEFINITION - Definition of the message types used as
part of the port type defintions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<message name="NsWithMapRequestMessage">
<part name="payload" element="tns:createNamespace"/>
</message>
<message name="NsWithMapResponseMessage">
<part name="payload" element="tns:transResult"/>
</message>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PORT TYPE DEFINITION - A port type groups a set of operations into
a logical service unit.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- portType implemented by the NsWithMap BPEL process -->
<portType name="NsWithMap">
<operation name="initiate">
<input message="tns:NsWithMapRequestMessage"/>
</operation>
</portType>
<!-- portType implemented by the requester of NsWithMap BPEL process
for asynchronous callback purposes
-->
<portType name="NsWithMapCallback">
<operation name="onResult">
<input message="tns:NsWithMapResponseMessage"/>
</operation>
</portType>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PARTNER LINK TYPE DEFINITION
the NsWithMap partnerLinkType binds the provider and
requester portType into an asynchronous conversation.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<plnk:partnerLinkType name="NsWithMap">
<plnk:role name="NsWithMapProvider">
<plnk:portType name="tns:NsWithMap"/>
</plnk:role>
<plnk:role name="NsWithMapRequester">
<plnk:portType name="tns:NsWithMapCallback"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>
I am trying to set this map data using java code ,
HashMap procADMap1 = new HashMap(5);
PropertyTypeWS pType = new PropertyTypeWS();
pType.setTypeIndex(2);
AppdataDefImplWS appData1 = new AppdataDefImplWS();
appData1.setName("Project");
appData1.setType(pType);
appData1.setMaxSize(400);
appData1.setLOB(false);
appData1.setDefaultValue("Project Default value");
procADMap1.put(appData1.getName(), appData1);
setVariableData("request","createNs","/createNs/namespaceData/appdataDef",procADMap1);
Then I am passing request object to the method which I want to invoke from bpel process.
I am able to deploy the application but when I do post message I am getting following exception,
NamespaceWithMap (createNamespace) (faulted)
[2004/09/09 18:35:54] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown. Less
faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
code: {Server.userException}
summary: {org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.}
detail: {null}
Is there any other way to handle Map type in bpel process?
Thanks in advance,
SanjayThanks for the quick reply.Actually the web service is already deployed on the server.What I want to do is use existing wsdl file of the deployed web service and invoke the method of the same using oracle PM.
If I remove element which uses apachesoap:Map type it just works fine also I am getting the complex object returned by the web service method.But when I try to set appDataDef which is of type apachesoap:Map(Axis conversion for java.util.Map and it uses namespace xmlns:apachesoap="http://xml.apache.org/xml-soap") I am getting the error.
Can you give me some direction to use this exising wsdl file to set map object or it is not possible. -
Flex 4 - Complex objects in a web service response are null
I'm using a web service (imported by the data services tool) that returns an array of objects. The service returns the array just fine, except the objects aren't being created correctly.
The objects (we'll call them CPs for now) contain some strings, an int, and 3 other complex objects. The basic fields (strings, ints, booleans) show up just fine, but the complex objects all show up as null.
The web service is working properly, and I can see that the response it's getting is correct.
If anybody has any help regarding this issue, I'd greatly appreciate it.
Thanks!There should be classes generated by the tool that map to the types in the
WSDL, and then the actual webservice response has to match the types in the
WSDL. If there is some discrepancy, the conversion will not happen
correctly.
Also, the generated classes must be linked into the SWF. If you comment
them out of your code somehow, then they won't be available for the
conversion. Generate a link-report and make sure they are in.
You might also have trouble if you do not use the generated WebService and
go directly to mx:WebService. -
About serilize/deserilize complex objects
Dear friends,
I have a question about transfering complex objects between client and server. if I just transfer primitive data type, any language of client side can consume this web service. but how about if I transfer complex object?
for example, in the server side, I use java to make a bean--bean1, in this bean, there is a variable bean2, it's also a java bean with primitive variables. though WSDL file, I know the complex data type is mapped to primitive data type at last. but I don't know if the client side can consume this web service if it's made by c language or perl language. also, supposing such kind of client side can consume this web service, can the client side transfer back this bean object to server and server can recognize it?
I really confused about this, from theory, web service is platform indepedent, does it mean language indepedent? or conditionally? does there any samples or articles about it?
any hint will be greatly appreciated!
SammyIt depends on the product and version of CORBA spec you are working with, but you can always pass a reference to the interface of the object in the parameter list, then the code can do whatever it needs to by manipulating the interface.
Jeff <[email protected]>
Technical Lead
eBay.com
eBay.com is recruiting for multiple open Java engineering positions.
Email me your resume to be put in contact with a hiring manager.
Principles only. -
JAVA&SOAP:how to return a complex object( the object has an object within)
Lets say my Complex object is :
public class PersonWithAddress {
private String name;
private int ssn ;
private Address add;
PersonWithAddress() {
name="Gagan Tandon" ;
ssn =1111;
add = new Address("1113","WestPlum Street");
public String getName() {
return name;
public int getSSN() {
return ssn;
public Address getAddress() {
return add;
This complex object has Address object embedded in it.
public class Address {
private String house;
private String street;
public Address (String myHouse,String myStreet) {
house = myHouse;
street = myStreet;
public String getHouse() {
return house;
public String getStreet() {
return street;
My deployment Descriptor is as following: check the mappings part.
<isd:service xmlns:isd=
"http://xml.apache.org/xml-soap/deployment"
id="urn:xml-soap-person-demo">
<isd:provider type="java"
scope="Application"
methods="getPersonWithAddress">
<isd:java class="PersonServer"/>
</isd:provider>
<isd:faultListener>
org.apache.soap.server.DOMFaultListener
</isd:faultListener>
<isd:mappings>
<isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:x="urn:xml-soap-person-demo" qname="x:PersonWithAddress"
javaType="PersonWithAddress"
java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
<isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:x="urn:xml-soap-person-demo" qname="x:Address"
javaType="Address"
java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
</isd:mappings>
</isd:service>
And in my SOAPRPC code at client end calls the following: check the mappingregistry code...
String serverHost = "http://localhost:8082/soap/servlet/rpcrouter";
SOAPMappingRegistry smr = new SOAPMappingRegistry();
Parameter p= null;
try {
System.out.println("here 0");
Response r=null;
Call c=new Call();
Vector parameters = new Vector();
System.out.println("here 1");
c.setTargetObjectURI ("urn:xml-soap-person-demo");
c.setMethodName ("getPersonWithAddress");
System.out.println("here 3");
c.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// parameters.addElement (new Parameter("name", String.class, "Web Services Client", null));
// c.setParams (parameters);
c.setSOAPMappingRegistry(smr);
BeanSerializer beanSer = new BeanSerializer();
smr.mapTypes(Constants.NS_URI_SOAP_ENC,new QName("urn:xml-soap-person-demo","Address"),Address.class,beanSer,beanSer);
smr.mapTypes(Constants.NS_URI_SOAP_ENC,new QName("urn:xml-soap-person-demo","PersonWithAddress"),PersonWithAddress.class,beanSer,beanSer);
try
System.out.println("here 4");
r = c.invoke ( new URL(serverHost), "" );
// org.apache.soap.SOAPException can be thrown
catch ( Exception e )
e.printStackTrace();
// Check the response.
if (r.generatedFault ()) {
Fault f = r.getFault();
System.out.println ("Error Occurred: ");
System.out.println (" Fault Code = " + f.getFaultCode());
System.out.println (" Fault String = " + f.getFaultString());
// return f.getFaultString();
// return new String("gagan");
return null;
else {
System.out.println("here 5");
p = r.getReturnValue();
System.out.println("here 6");
// System.out.println( (String)greeting.getValue() );
System.out.println("SSN: " + ((PersonWithAddress)p.getValue()).getSSN());
return (PersonWithAddress) p.getValue();
catch( Exception e ){
e.printStackTrace();
// finally {
// return null;// String("not OK");
if (p==null)
return null;
else
return (PersonWithAddress) p.getValue();
When running this code..
The following error is thrown.
System.out.println("here 4") is printed.
[SOAPException: faultCode=SOAP-ENV:Client; msg=Unable to instantiate 'PersonWithAddress': Class org.apache.soap.encoding.soapenc.BeanSerializer can not access a member of class PersonWithAddress with modifiers ""; targetException=java.lang.IllegalArgumentException: Unable to instantiate 'PersonWithAddress': Class org.apache.soap.encoding.soapenc.BeanSerializer can not access a member of class PersonWithAddress with modifiers ""]
at org.apache.soap.rpc.Call.invoke(Call.java:294)
at PersonClient.getPersonWithAddress(PersonClient.java:92)
at PersonClient.<init>(PersonClient.java:11)
at PersonClient.main(PersonClient.java:20)
java.lang.NullPointerException
at PersonClient.getPersonWithAddress(PersonClient.java:96)
at PersonClient.<init>(PersonClient.java:11)
at PersonClient.main(PersonClient.java:20)
I am here 1
Exception in thread "main" java.lang.NullPointerException
at PersonClient.<init>(PersonClient.java:13)
at PersonClient.main(PersonClient.java:20)
What could be the problem..? Is there any info on net how could i pass complex objects of this type in Java through SOAP RPC.
GAGANHave you managed to sole the problem ? I have got similar one...
[SOAPException: faultCode=SOAP-ENV:Client; msg=Unable to instantiate 'auction.common.Property': auction/common/Property]
at proxy.soap.AuctionHistoryProxy.addAuctionProperty(AuctionHistoryProxy.java:515)
at java.lang.reflect.Method.invoke(Native Method)
(...) -
Using oracle.sql.STRUCT to pass in a COMPLEX OBJECT
I need to pass in a complex object (object with nested array of objects) into a oracle stored procedure.
We are using JDBC 9.2.0.1 drivers...
Note i am able to retrieve a complex object successfully using an oracle struct however i am not able to pass in the struct.
I do not want to use JPublisher as we are not using SQLJ.
I have looked through the documentation on using default structs and am getting an error when i try and create the struct...
I have created an array of objects with a sub array
and i create a struct descriptor however when i create the actual oracle struct
like
oracle.sql.Struct = new oracle.sql.Struct( structDesc,conn,complexobject)
I get a "java.sql.SQLException: Internal Error: Unable to resolve name"
Do i have to create STRUCTS for the nested object first ?
And then nest that STRUCT within the PARENT STRUCT to pass in complex objects ???
Any help would be much appreciated...
Gurinder
email [email protected]Thanks Konstantin Goryachev!
I'm using Oracle JDBC 9.2.0.3 drivers using a SQLData implementation.
Unfortunately i have something very similar to your code and i still get the following error
EXC: testPolicyRate(): java.sql.SQLException: Internal Error: Inconsistent catalog view
java.sql.SQLException: Internal Error: Inconsistent catalog view
void oracle.jdbc.dbaccess.DBError.throwSqlException(java.lang.String, java.lang.String, int)
DBError.java:187
void oracle.jdbc.dbaccess.DBError.throwSqlException(int, java.lang.Object)
DBError.java:229
void oracle.sql.StructDescriptor.initMetaData1_9_0()
StructDescriptor.java:897
void oracle.sql.StructDescriptor.initMetaData1()
StructDescriptor.java:864
boolean oracle.sql.StructDescriptor.isInstantiable()
StructDescriptor.java:508
void oracle.sql.STRUCT.<init>(oracle.sql.StructDescriptor, java.sql.Connection, java.lang.Object[])
STRUCT.java:107
oracle.sql.STRUCT oracle.sql.OracleSQLOutput.getSTRUCT()
OracleSQLOutput.java:96
oracle.sql.STRUCT oracle.sql.STRUCT.toSTRUCT(java.lang.Object, oracle.jdbc.OracleConnection)
STRUCT.java:408
oracle.sql.Datum oracle.jdbc.oracore.OracleTypeADT.toDatum(java.lang.Object, oracle.jdbc.driver.OracleConnection)
OracleTypeADT.java:284
oracle.sql.Datum[] oracle.jdbc.oracore.OracleTypeADT.toDatumArray(java.lang.Object, oracle.jdbc.driver.OracleConnection, long, int)
OracleTypeADT.java:327
oracle.sql.Datum[] oracle.jdbc.oracore.OracleTypeUPT.toDatumArray(java.lang.Object, oracle.jdbc.driver.OracleConnection, long, int)
OracleTypeUPT.java:143
oracle.sql.Datum[] oracle.sql.ArrayDescriptor.toOracleArray(java.lang.Object, long, int)
ArrayDescriptor.java:771
void oracle.sql.ARRAY.<init>(oracle.sql.ArrayDescriptor, java.sql.Connection, java.lang.Object)
ARRAY.java:118
void com.tu.lib.busobject.PolicyRate.main(java.lang.String[])
PolicyRate.java:198
Process exited with exit code 0.
Here's my code
* Main Method
public static void main(String[] args)
throws SQLException, IOException
Connection conn = null;
OracleCallableStatement cstmt = null;
try {
/* Setup connection */
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thin:@neptune:1521:tu_test", "OPS$WWW", "welcome1");
conn.setAutoCommit(false);
System.out.println("conn is open = " + !conn.isClosed());
/* Setup map */
System.out.println("Creating type maps...");
java.util.Map typeMap = conn.getTypeMap();
typeMap.put(_SQL_NAME,PolicyRate.class);
typeMap.put(CoverageRate._SQL_NAME, CoverageRate.class);
typeMap.put(CoverageRate._SQL_ARRAY_NAME,CoverageRate[].class);
conn.setTypeMap(typeMap);
/* Create a coverage rate object to be inserted into array of policy rate object */
CoverageRate covrObj = new CoverageRate(1,
"HMS",
30,
5,
new BigDecimal(0),
null,
null,
new BigDecimal(0),
new BigDecimal(0),
0,
0);
/* Create an array */
System.out.println("Creating descriptor...");
ArrayDescriptor adesc = new ArrayDescriptor(CoverageRate._SQL_ARRAY_NAME,conn);
System.out.println("Created descriptor!");
Object [] covrArray = new Object[1];
covrArray[0] = covrObj;
System.out.println("Creating oracle array..");
ARRAY arr = new ARRAY(adesc,conn,covrArray);
System.out.println("Created array!!");
/* Create policy rate object */
PolicyRate prate = new PolicyRate ("TESTTRA",
"TRS",
TUDate.convertToSql("2003","08","27"),
TUDate.convertToSql("2004","06","25"),
TUDate.convertToSql("2004","06","29"),
"NEW",
1,
new BigDecimal(0),
new BigDecimal(0),
null);
/* Add coverage rate object to array -- assume array only has one element for timebeing */
System.out.println("Setting arr in policyrate...");
prate.setRates(arr);
System.out.println("Creating array.sql.ARRAY for covrObj..");
prate.setRates(new oracle.sql.ARRAY(adesc,conn,covrObj));
System.out.println("Created array.sql.ARRAY for covrObj..");
/* Setup statemenet object */
cstmt = (OracleCallableStatement) conn.prepareCall("{call dbpckg_rate_obj.p_rate_obj_calc_rate(?)}");
/* Bind variables to statement */
System.out.println("Setting policyrate object...");
cstmt.setObject(1,prate,OracleTypes.STRUCT);
System.out.println("Registering out object...");
cstmt.registerOutParameter(1,oracle.jdbc.OracleTypes.STRUCT,PolicyRate._SQL_NAME);
cstmt.execute();
/* Retrieve the object back */
System.out.println("Getting policy rate object back...");
prate = (PolicyRate) cstmt.getObject(1);
System.out.println("Object Retrieved " + prate.getProductcode() + " " + prate.getAgentcode());
/* Close database connection */
conn.close();
catch (Exception exc) {
System.out.println("EXC: testPolicyRate(): " + exc);
exc.printStackTrace();
if (conn != null)
conn.close();
finally {
if (conn != null)
conn.close();
I've opened up a tar through metalink hopefully they can help get past this error...:)
Gurinder -
Hi,
I've got a datagrid that's populated with an arrayCollection
of complex AS objects. The object has this attributes:
public var oneriAccessori:Number=0;
public var telefono:String = "";
public var fax:String = "";
public var tipoImposta:TipoImposta;
The tipoImposta attribute is another object with different
attributes and i need to show one of them, the Description
attribute, in the datagrid.
How can i do? I have tried all the possible sintax
alternatives, like:
- dataField="tipoImposta.descrizione",
- dataField="tipoImposta/descrizione" and so on.
Please help me, thanks
FabiosYou will need to use the labelFunction property of the
DataGrid. Here is the function signature.
private function
myLabelFunction(item:Object,column:DataGridColumn):String -
Problem with some characters in complex objects
Hi all,
I've built a webservice which returns a complex object with several fields inside. All fields are public and accessable via getter and setter methods.
The problem is, that some of these fields contains numbers or underscores in their names.
For example:
public int field_a;
or
public String house3of4;
When I try to import these webservice as a model in a Web Dynpro project, it doesn't work until I remove these characters.
Is this a known problem or is there any solution for it?
Thanks
ThomasNLS_LANG in registry is "ARABIC_UNITED ARAB EMIRATES.AR8MSWIN1256"
I use oracle form 10g for developer
oracle form 9i for database
when I build a form in client side and make a text with farsi characters, when I run the form,all characters shows me correct in farsi except four characters(گ چ ژ پ) -
How to convert an array collection instance to a complex object for interaction with webservice
Hi there,
I have a stubborn problem that I am trying to work out the best way to solve the problem. I am interacting with a WebService via HTTPService calling a method called find(String name) and this returns me a List of ComplexObjects that contain general string and int params and also lists of other Complex Objects. Now using the code:
ArrayCollection newOriginalResultsArray = new ArrayCollection(event.result as Array)
flex converts my complex objects results to an arraycollection so that I can use it in datagrids etc. Now up until this part is all good. My problem is when getting a single instance from the results list, updating it by moving data around in a new datagrid for example - I want to interact with the webservice again to do an create/update. This is where I am having problems - because these webservice methods require the complex object as a parameter - I am struggling to understand how I can convert the array collection instance back to my complex object without iterating over it and casting it back (maybe this is the only way - but I am hoping not).
I am hoping that there is a simple solution that I am missing and that there is some smart cookie out there that could provide me with an answer - or at least somewhere to start looking. I guess if I have no other alternative - maybe I need to get the people who built the service to change it to accept an array - and let them do the conversion.
Any help would be greatly appreciated.
BertHi Bert,
According to my knowledge you can use describeType(Object) method which will return an XML... That XML will contain Properties and values just iterate through the XML and create a new Object.. Probably u can use this method...
public function getObject(reqObj:Object,obj:Object,instanceName:String,name:String=null,index:int=-1):Obj ect
if(!reqObj)
reqObj = new Object();
var classInfo:XML = describeType(obj);
var className:String = instanceName;
if(name!=null)
className=name+"."+className;
if(index!=-1)
className=className+"["+index+"]";
for each (var v:XML in classInfo..accessor)
var attributeName:String=v.@name;
var value:* = obj[attributeName]
var type:String = v.@type;
if(!value)
reqObj[className+"."+attributeName] = value;
else if(type == "mx.collections::ArrayCollection")
for(var i:int=0;i<value.length;i++)
var temp:Object=value.getItemAt(i);
getReqObject(reqObj,temp,attributeName,className,i);
else if(type == "String" || type == "Number" || type == "int" || type == "Boolean")
reqObj[ className+"."+attributeName] = value;
else if (type == "Object")
for (var p:String in value)
reqObj[ className+"."+attributeName+"."+p] = value[p];
else
getReqObject(reqObj,value,attributeName,className);
return reqObj;
Thanks,
Pradeep -
I have created a complex object by building it on a page, select all, then grouping the objects. Then I place several of these objects on the same page. If I need to ungroup one of these complex objects to make a change, I need to make dozens of clicks to select all of the elements again for regrouping, Is there an efficient way to re select all of the elements that are making up one of my complex opjects?
Thanks,
KenKen,
Usually it's possible to Click-Drag a Selection Rectangle to affect several elements at once. How easy this is depends on the layout and proximity to things you don't want to select. Sometimes to Click-Drag, we must begin in the Margin and also hold down the Command Key. If you get more objects selected than you intended, you can cancel the selection of individual items with a Command-Click.
Jerry -
Passing complex object from JavaScript to Flex
Is it possible to call a Flex function (defined with ExternalInterface.addCallback) and pass a complex object from Javascript? The properties of the object are all simple types, but the object itself is an array of objects. For example:
<script type="text/javascript">
var arrayOfObj = [ { one: "one", two: 2, three: "blah" }, { one: "xyz", two: "abc", three: 3.141 } ];
callSomeFunctionInFlex(arrayOfObj);
</script>
What would I do on the Flex side to make this happen?Complex object passing works as expected in Blazeds.
There are certain cases where you need to write custom bean proxy classes to marshall an object, but your case is very simple and will not require it.
Make sure that you set the full java package and class name in your remote alias statement on your client value object. The class has to be fully qualified. The AS value object also needs the correct import of the nested value object or you will get a compile error.
Make sure that the blazeds server has the full class path set to your java objects.
To debug, you can turn on Blazeds logging in the services-config.xml file like this:
<logging>
<!-- You may also use flex.messaging.log.ServletLogTarget -->
<target class="flex.messaging.log.ConsoleTarget" level="DEBUG">
<properties>
<prefix>[BlazeDS]</prefix>
<includeDate>false</includeDate>
<includeTime>false</includeTime>
<includeLevel>true</includeLevel>
<includeCategory>false</includeCategory>
</properties>
</target>
</logging> -
Mapping Value Objects to Java Classes
Hi All,
I have one Java Class:
public class MyBean {
private ArrayList numbers;
I have created one mapping value object for the same in Flex:
package vo
import mx.collections.ArrayCollection;
[RemoteClass(alias="com.tcs.example.MyBean")]
public class MyBean
public function MyBean()
public var numbers:ArrayCollection;
but when I fetch the object using Remote Object, the returned object has "numbers" as null even though I'm returning from Java a filled ArrayList.
Does any one know Why is it happening and what should I do for this.
Thanks in advanceDo you have getNumbers and setNumbers methods on your java bean?
Try to activate the logs on blazeDS to see what's going on. -
Blaze DS - Mapping java object into another java application
Good afternoon,
I realized a Client-Server application. Server is Java-based. Client is Flex. Server services are accessible through Blaze DS.
Now I have some Java clients that need to access server services. Blaze DS permits to do it simply but I don't know how to map java objects as I do using [RemoteClass(alias.....)] construct at Actionscript side.
For example, server sends a MyObjectType and client receives an ASObject.
Is there a way to map java MyObjectType automatically at destination?
Thank you for help and sorry for poor english.
Regards, Francescoxstream will convert any given java object to xml. Not sure what support it offers for schemas.
http://xstream.codehaus.org/ -
DG Observer triggering SIGSEGV Address not mapped to object errors in alert log
Hi,
I've got a Data Guard configuration using two 11.2.0.3 single instance databases. The configuration has been configured for automatic failover and I have an observer running on a separate box.
This fast-start failover configuration has been in place for about a month and in the last week, numerous SEGSEGV (address not mapped to object) errors are reported in the alert log. This is happening quite frequently (every 4/5 minutes or so).
The corresponding trace files show the process triggering the error coming from the observer.
Has anyone experienced this problem? I'm at my wits end trying to figure out how to fix the configuration to eliminate this error.
I must also note that even though this error is occurring a lot, it doesn't seem to be affecting any of the database functionality.
Help?
Thanks in advance.
BethHi.. The following is the alert log message, the traced file generated, and the current values of the data guard configuration. In addition, as part of my research, I attempted to apply patch 12615660 which did not take care of the issue. I also set the inbound_connection_timeout parameter to 0 and that didn't help either. I'm still researching but any pointer in the right direction is very much appreciated.
Error in Alert Log
Thu Apr 09 10:28:59 2015
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x9] [PC:0x85CE503, nstimexp()+71] [flags: 0x0, count: 1]
Errors in file /u01/app/oracle/diag/rdbms/<db_unq_name>/<SID>/trace/<SID>_ora_29902.trc (incident=69298):
ORA-07445: exception encountered: core dump [nstimexp()+71] [SIGSEGV] [ADDR:0x9] [PC:0x85CE503] [Address not mapped to object] []
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Thu Apr 09 10:29:02 2015
Sweep [inc][69298]: completed
Trace file:
Trace file /u01/app/oracle/diag/rdbms/<db_unq_name>/<SID>/trace/<SID>_ora_29902.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning and Oracle Label Security options
ORACLE_HOME = /u01/app/oracle/product/11.2.0.3/dbhome_1
System name: Linux
Node name: <host name>
Release: 2.6.32-431.17.1.el6.x86_64
Version: #1 SMP Wed May 7 14:14:17 CDT 2014
Machine: x86_64
Instance name: <SID>
Redo thread mounted by this instance: 1
Oracle process number: 19
Unix process pid: 29902, image: oracle@<host name>
*** 2015-04-09 10:28:59.966
*** SESSION ID:(416.127) 2015-04-09 10:28:59.966
*** CLIENT ID:() 2015-04-09 10:28:59.966
*** SERVICE NAME:(<db_unq_name>) 2015-04-09 10:28:59.966
*** MODULE NAME:(dgmgrl@<observer host> (TNS V1-V3)) 2015-04-09 10:28:59.966
*** ACTION NAME:() 2015-04-09 10:28:59.966
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x9] [PC:0x85CE503, nstimexp()+71] [flags: 0x0, count: 1]
DDE: Problem Key 'ORA 7445 [nstimexp()+71]' was flood controlled (0x6) (incident: 69298)
ORA-07445: exception encountered: core dump [nstimexp()+71] [SIGSEGV] [ADDR:0x9] [PC:0x85CE503] [Address not mapped to object] []
ssexhd: crashing the process...
Shadow_Core_Dump = PARTIAL
ksdbgcra: writing core file to directory '/u01/app/oracle/diag/rdbms/<db_unq_name>/<SID>/cdump'
Data Guard Configuration
DGMGRL> show configuration verbose;
Configuration - dg_config
Protection Mode: MaxPerformance
Databases:
dbprim - Primary database
dbstby - (*) Physical standby database
(*) Fast-Start Failover target
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
FastStartFailoverLagLimit = '180'
CommunicationTimeout = '180'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
Fast-Start Failover: ENABLED
Threshold: 30 seconds
Target: dbstby
Observer: observer_host
Lag Limit: 180 seconds
Shutdown Primary: TRUE
Auto-reinstate: TRUE
Configuration Status:
SUCCESS
DGMGRL> show database verbose dbprim
Database - dbprim
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
DG_CONFIG
Properties:
DGConnectIdentifier = 'dbprim'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'MANUAL'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = ''
FastStartFailoverTarget = 'dbstby'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = ‘<sid>’
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<db host name>)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<service_name>)(INSTANCE_NAME=<sid>)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.dbf'
TopWaitEvents = '(monitor)'
Database Status:
SUCCESS
DGMGRL> show database verbose dbstby
Database - dbstby
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds
Apply Lag: 0 seconds
Real Time Query: ON
Instance(s):
DG_CONFIG
Properties:
DGConnectIdentifier = 'dbstby'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = ''
FastStartFailoverTarget = 'dbprim'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = ‘<sid>’
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<db host name>)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<service_name>)(INSTANCE_NAME=<sid>)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.dbf'
TopWaitEvents = '(monitor)'
Database Status:
SUCCESS
Maybe you are looking for
-
Discoverer report in oracle apps 11i
hi, can you please explain me the steps involved in to view the discoverer report in oracle application 11i.... how to attach a discoverer report in oracle applications 11i versions...
-
How to install Apple's Rosetta emulation software?
Sigma Chess is a legacy PowerPC application and therefore needs Apple's Rosetta emulation software in order to run on Intel based Macs. This is pre- installed on Mac OS X 10.5 and earlier, but must be installed manually on the new Mac OS X 10.6. Plea
-
Material Price warning before saving Purchase Order
Hi everyone, While saving the Purchase Order ..I want the system shud prompt (as Warning Mesage) the current MAP of material so that user doesnot put any erratic price.. I had done it last but cud not recollect the settings...... Will anyone help me
-
Some "formula" interpreter or returning value from unnamed PL/Sql blocks
Hello, My company is developing Payroll and HR software and we use Oracle 10G Database. For a new module we are looking for a system were the end user (power user) can put in some kind of "formula's" to define what info/figures he wants for certain c
-
How to send JMS Message with use title, content, and attach file
I use OpenJMS server such as Message server and use Tomcat 4.0 as web server. I want to use JMS to send Message that message have title, content, and can attach file.