Object deserialization problems?

A bit of a crosspost perhaps but not really sure if new to java or java programming is really the right place..anyway..i have a resultset containing object serializations..in the code below rs is a ResultSet;
while(rs.next()){
       ObjectInputStream in = new ObjectInputStream(rs.getBinaryStream(1));
       productionRule rule = (productionRule)in.readObject();
       answer.add(rule);
     }this works on the first time round and returns the properly deserialized object in rule..which is then added to the LinkedList answer but on the second iteration the line;
       ObjectInputStream in = new ObjectInputStream(rs.getBinaryStream(1));produces an IOException with a getMessage() of Invalid Stream header
I have no idea why this is occurring..does any one have any idea?

The ResultSet.getBinaryStream() says the following
Note: All the data in the returned stream must be read prior to getting the value of any other column. The next call to a getXXX method implicitly closes the stream. Also, a stream may return 0 when the method InputStream.available is called whether there is data available or not.
Maybe, when you leave the first row, it is closing down the inputstream on the second row before you can read it ? Strange... but fits the symptoms.
Could it be, that the inputstream you receive is valid for the entire resultset ? Ie. you can read multiple objects from one getBinaryStream() call on a resultset, outside of your while loop ???
regards,
Owen

Similar Messages

  • JNDI NIS object access problem

    JNDI NIS object access problem:
    Hi all,
    After long fight, i'm now able to connect to my NIS server on my network. the initial context factory is 'com.sun.jndi.nis.NISCtxFactory' and provider url are given and i obtain namingennumeration of items in the NIS directory.
    purpose of my project:
    using ypcat command we can view the services,passwd,host... objects in unix.
    my project requirement is that i shd open this 'services' object in java (using JNDI probably) and shd access its content.
    i'm able to obtain the object and the type of this object is 'NISCtxServices' defined in 'com.sun.jndi.nis.NISCtxFactory' package, but all the classes and methods except some are not public and so im not able to use almost all the methods in this class 'NISCtxServices' .
    Can any one help me in accessing the information inside this object.
    Thanks in advance! and i'm waiting!

    It's because JFrame does not have a public progessbar variable, only your subclass has that.
    //change this
    JFrame frame = new ProgressBarDemo();
    //to this
    ProgressBarDemo frame = new ProgressBarDemo();

  • Performance of object deserialization

    Hi :) I am serialising a (rather large) object graph. The resulting file is about 10 megabytes. The deserialization of this object graph takes about 6.5 seconds, which is a little long.
    So my questions are these:
    (1) Is there a way to improve the performance of object deserialization?
    (2) Is object deserialization the way to go? Would I get better performance is I wrote the object to a binary file myself?
    Thanks :)
    Kind regards,
    Ben

    You can get better performance writing the object to a binary file yourself, yes.
    In particular, if you keep the data in multiple files or a chunked RandomAccessFile, you can read in only the parts you need and speed up the process (assuming you don't need to read all the data in at once.)
    But yeah. The overhead you get from reading/writing the serialised headers can add to the size of the file, and the time taken to read it back. Particularly if you know exactly what objects appear in the file, and what order they appear in.

  • Issue :  Child view object refresh problem,

    Hi ,
    Child view object refresh problem,
    Detail expaination of problem with DEPT and Emp table:
    I have two pages first.jspx and secound.jspx
    In the First page we are showing one department and All Employee blongs to that department. Employees are shown in table format.
    and i have duplicate button in table--> this will create a duplication record of selected employee by calling application module
    and the control moves to sencound page to show the newly created Employee details.
    From secound form am returning back with some action button to previous page to the same dept , The newly created records are not showing in the table [but the database has newly crated].
    How do i refresh the child view object ?
    Regards,
    Bogi.

    Hi Frank,
    We are creating new record from the AM with help of ADFBC.
    Would like know how to refresh UI Datacollection and AM view objects.. ? i have added vo.executeQuery in AM . But the changes not reflecting in UI,
    Thanks for the reply... am ready to give any other info required,,,

  • Apache axis deserialization problem

    Can anybody help?
    We are using Apache's Axis web service framework for consuming web services. One of the web services has "nested" or complex types in the response, and the Axis framework is not processing it properly.
    Is there something that we need to configure to get this to work? Any suggestions are much appreciated.
    It gives the following message:
    org.xml.sax.SAXException: Invalid element in com.chase.egw._GWProfile - Product
    at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:260)
    at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:963)
    at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
    at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
    at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:323)
    at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
    at org.apache.axis.client.Call.invoke(Call.java:2272)
    at org.apache.axis.client.Call.invoke(Call.java:2171)
    at org.apache.axis.client.Call.invoke(Call.java:1691)
    at com.chase.egw.GWProfilePortTypeSoapBindingStub.getProfile(GWProfilePortTypeSoapBindingStub.java:185)
    at com.echase.common.mf.sso.SSOGatewayServiceDelegate.getGWProfile(SSOGatewayServiceDelegate.java:178)

    I am having the same problem as you describe.
    Checkout out this link:
    http://dev-forums.ebay.com/thread.jsp?forum=1002&thread=100000782
    It talks about adding the following to the complex type defintion in the WSDL
    <xsd:any processContents = "lax"/>
    The good news is this solved the exception problem.
    The bad news is that my complex objects are not being deserialed. I've posted to the AXIS users mailing list.
    Here is what I posted:
    Hi,
    I need a little help getting started with AXIS.
    I've done some SOAP web services development a few years back using SUN JAXM, but I will be using AXIS for a webservice project in the near term.
    In order to get familiar with AXIS I did the GOOGLE thing and aquired a sample WDSL to try out.
    I am using 1.2RC3 version of AXIS with Tomcat 5.0.28.
    Here is the WSDL I first used:
    <wsdl:definitions
    name="PhotoCatalogService"
    targetNamespace="http://examples.com/PhotoCatalog"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:types="http://examples.com/PhotoCatalog/types"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:tns="http://examples.com/PhotoCatalog">
    <wsdl:types>
    <xsd:schema targetNamespace="http://examples.com/PhotoCatalog/types"
    xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
    xmlns:types="http://examples.com/PhotoCatalog/types">
    <xsd:import namespace="http://ws-i.org/profiles/basic/1.1/xsd" schemaLocation="WS-ISwA.xsd"/>
    <!-- Status contains the references the old photo available as attachment. -->
    <xsd:element name="Status" type="wsi:swaRef" />
    <!-- passed in as parameter of replacePhoto operation, contains the order. -->
    <xsd:element name="PhotoInfo">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="customerName" type="xsd:string"/>
    <xsd:element name="photoID" type="xsd:int"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    </wsdl:types>
    <wsdl:message name="addPhotoRequest">
    <wsdl:part name="oldPhoto" element="types:PhotoInfo"/>
    <wsdl:part name="photo" type="xsd:hexBinary"/>
    </wsdl:message>
    <wsdl:message name="addPhotoResponse">
    <wsdl:part name="status" type="xsd:string"/>
    </wsdl:message>
    <wsdl:message name="replacePhotoRequest">
    <wsdl:part name="oldPhoto" element="types:PhotoInfo"/>
    <wsdl:part name="newPhoto" type="xsd:hexBinary"/>
    </wsdl:message>
    <wsdl:message name="replacePhotoResponse">
    <wsdl:part name="status" element="types:Status"/>
    </wsdl:message>
    <wsdl:portType name="PhotoCatalog">
    <wsdl:operation name="addPhoto">
    <wsdl:input message="tns:addPhotoRequest"/>
    <wsdl:output message="tns:addPhotoResponse"/>
    </wsdl:operation>
    <wsdl:operation name="replacePhoto">
    <wsdl:input message="tns:replacePhotoRequest"/>
    <wsdl:output message="tns:replacePhotoResponse"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="PhotoCatalogBinding" type="tns:PhotoCatalog">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="addPhoto">
    <wsdl:input>
    <mime:multipartRelated>
    <mime:part>
    <soap:body parts="oldPhoto" use="literal"/>
    </mime:part>
    <mime:part>
    <mime:content part="photo" type="image/jpeg"/>
    </mime:part>
    </mime:multipartRelated>
    </wsdl:input>
    <wsdl:output>
    <mime:multipartRelated>
    <mime:part>
    <soap:body use="literal"/>
    </mime:part>
    <mime:part>
    <mime:content part="status" type="text/plain"/>
    <mime:content part="status" type="text/xml"/>
    </mime:part>
    </mime:multipartRelated>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="replacePhoto">
    <wsdl:input>
    <mime:multipartRelated>
    <mime:part>
    <soap:body parts="oldPhoto" use="literal"/>
    </mime:part>
    <mime:part>
    <mime:content part="newPhoto" type="image/jpeg"/>
    </mime:part>
    </mime:multipartRelated>
    </wsdl:input>
    <wsdl:output>
    <mime:multipartRelated>
    <mime:part>
    <soap:body parts="status" use="literal"/>
    </mime:part>
    </mime:multipartRelated>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="PhotoCatalogService">
    <wsdl:port name="PhotoCatalogPort" binding="tns:PhotoCatalogBinding">
    <soap:address location="http://localhost:8080/jaxrpc-AttachmentsSample/photocatalog"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    When I used the previous WSDL to generate a service and then a client I got the following error on the client side when trying the "addPhoto" service:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: Invalid element in com.examples.PhotoCatalog.types.PhotoInfo - PhotoInfo
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}hostname:tislaptop
    org.xml.sax.SAXException: Invalid element in com.examples.PhotoCatalog.types.PhotoInfo - PhotoInfo
    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
    at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:745)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:141)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2754)
    at org.apache.axis.client.Call.invoke(Call.java:2737)
    at org.apache.axis.client.Call.invoke(Call.java:2413)
    at org.apache.axis.client.Call.invoke(Call.java:2336)
    at org.apache.axis.client.Call.invoke(Call.java:1793)
    at com.examples.PhotoCatalog.PhotoCatalogBindingStub.addPhoto(PhotoCatalogBindingStub.java:190)
    at com.examples.PhotoCatalog.PhotoCatalogProxy.addPhoto(PhotoCatalogProxy.java:45)
    at com.examples.PhotoCatalog.TestPhotoService.main(TestPhotoService.java:41)
    Here is an abridged network trace of the SOAP request sent from client to server...
    POST /axis/services/PhotoCatalogPort HTTP/ 1.0
    Content-Type: multipart/related;type="text/xml";start="<DBB2B5537065926A4CBC8F8ED8D88F15>";boundary="----=_Part_0_20983130.1113483759295"
    Accept: application/soap+xml, application/dime, multipart/related, text/*
    User-Agent:Axis/1.2RC3
    Host: xxx.xxx.xxx.xxx:8080
    Cache-Control: no-cache
    Pragma: no-cache
    SOAPAction: ""
    Content-Length: 8466
    ------=_Part_0_209831301113483759295
    Content-Type: text/xml; charset=UTF-8
    Content-Transfer-Encoding: binary
    Content-Id: <DBB2B5537065926A4CBC8F8ED8D88F15>
    <?xml version="1.0" encoding="UTF-8" ?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XML Schema-instance">
    <soapenv:Body>
    <addPhoto xmlns="">
    <ns1:PhotoInfo xmlns:ns1="http://examples.com/PhotoCatalog/types">
    <customerName>karl</customerName>
    <photoID>100</photoID>
    </ns1:PhotoInfo>
    <photo href="cid:9AD6390B491EF0EE0B0FCEA7AA945655" xsi:type="ns2:Image" xmlns:ns2="http://xml.apache.org/xml-soap"/>
    </addPhoto>
    </soapenv:Body>
    </soapenv:Envelope>
    ------=_ Part_0_20983130.1113483759295
    Content-Type:image/jpeg
    Content -Transfer-Encoding:binary
    Content-Id: <F2369DA809C4B1B0ADBA8538372E6F23>
    ...QE..QE.......
    ------=_Part_0_20983130.1113483759295
    After a little searching I found some info that led me to change the WSDL a little. I redefined the "PhotoInfo" type as follows
    <xsd:element name="PhotoInfo">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="customerName" type="xsd:string"/>
    <xsd:element name="photoID" type="xsd:int"/>
    <xsd:any processContents = "lax"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    Now there is no exception thrown, but the PhotoInfo and photo objects are not deserialized. I get null values passed to the PhotoCatalogBindingImpl class.
    I noticed that an org.apache.axis.message.MessageElement[] object and associated methods was added to the PhotoInfo class, which I assume is due to adding the <xsd:any processContents = "lax"/> line to the WSDL.
    Here is the PhotoInfo and PhotoCatalogBindingImpl class source for reference:
    * PhotoCatalogBindingImpl.java
    * This file was auto-generated from WSDL
    * by the Apache Axis 1.2RC3 Feb 28, 2005 (10:15:14 EST) WSDL2Java emitter.
    package com.examples.PhotoCatalog;
    import javax.xml.transform.Source;
    public class PhotoCatalogBindingImpl implements com.examples.PhotoCatalog.PhotoCatalog{
    public javax.xml.transform.Source
    addPhoto(com.examples.PhotoCatalog.types.PhotoInfo oldPhoto, java.awt.Image photo) throws java.rmi.RemoteException {
    return null;
    public org.apache.axis.types.URI replacePhoto(com.examples.PhotoCatalog.types.PhotoInfo oldPhoto, java.awt.Image newPhoto) throws java.rmi.RemoteException {
    return null;
    * PhotoInfo.java
    * This file was auto-generated from WSDL
    * by the Apache Axis 1.2RC3 Feb 28, 2005 (10:15:14 EST) WSDL2Java emitter.
    package com.examples.PhotoCatalog.types;
    public class PhotoInfo implements java.io.Serializable, org.apache.axis.encoding.AnyContentType {
    private java.lang.String customerName;
    private int photoID;
    private org.apache.axis.message.MessageElement [] _any;
    public PhotoInfo() {
    public PhotoInfo(
    org.apache.axis.message.MessageElement [] _any,
    java.lang.String customerName,
    int photoID) {
    this.customerName = customerName;
    this.photoID = photoID;
    this._any = _any;
    * Gets the customerName value for this PhotoInfo.
    * @return customerName
    public java.lang.String getCustomerName() {
    return customerName;
    * Sets the customerName value for this PhotoInfo.
    * @param customerName
    public void setCustomerName(java.lang.String customerName) {
    this.customerName = customerName;
    * Gets the photoID value for this PhotoInfo.
    * @return photoID
    public int getPhotoID() {
    return photoID;
    * Sets the photoID value for this PhotoInfo.
    * @param photoID
    public void setPhotoID(int photoID) {
    this.photoID = photoID;
    * Gets the _any value for this PhotoInfo.
    * @return _any
    public org.apache.axis.message.MessageElement [] get_any() {
    return _any;
    * Sets the _any value for this PhotoInfo.
    * @param _any
    public void set_any(org.apache.axis.message.MessageElement [] _any) {
    this._any = _any;
    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
    if (!(obj instanceof PhotoInfo)) return false;
    PhotoInfo other = (PhotoInfo) obj;
    if (obj == null) return false;
    if (this == obj) return true;
    if (__equalsCalc != null) {
    return (__equalsCalc == obj);
    __equalsCalc = obj;
    boolean _equals;
    _equals = true &&
    ((this.customerName==null && other.getCustomerName()==null) ||
    (this.customerName!=null &&
    this.customerName.equals(other.getCustomerName()))) &&
    this.photoID == other.getPhotoID() &&
    ((this._any==null && other.get_any()==null) ||
    (this._any!=null &&
    java.util.Arrays.equals(this._any, other.get_any())));
    __equalsCalc = null;
    return _equals;
    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
    if (__hashCodeCalc) {
    return 0;
    __hashCodeCalc = true;
    int _hashCode = 1;
    if (getCustomerName() != null) {
    _hashCode += getCustomerName().hashCode();
    _hashCode += getPhotoID();
    if (get_any() != null) {
    for (int i=0;
    i<java.lang.reflect.Array.getLength(get_any());
    i++) {
    java.lang.Object obj = java.lang.reflect.Array.get(get_any(), i);
    if (obj != null &&
    !obj.getClass().isArray()) {
    _hashCode += obj.hashCode();
    __hashCodeCalc = false;
    return _hashCode;
    // Type metadata
    private static org.apache.axis.description.TypeDesc typeDesc =
    new org.apache.axis.description.TypeDesc(PhotoInfo.class, true);
    static {
    typeDesc.setXmlType(new javax.xml.namespace.QName("http://examples.com/PhotoCatalog/types", ">PhotoInfo"));
    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
    elemField.setFieldName("customerName");
    elemField.setXmlName(new javax.xml.namespace.QName("", "customerName"));
    elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
    typeDesc.addFieldDesc(elemField);
    elemField = new org.apache.axis.description.ElementDesc();
    elemField.setFieldName("photoID");
    elemField.setXmlName(new javax.xml.namespace.QName("", "photoID"));
    elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
    typeDesc.addFieldDesc(elemField);
    * Return type metadata object
    public static org.apache.axis.description.TypeDesc getTypeDesc() {
    return typeDesc;
    * Get Custom Serializer
    public static org.apache.axis.encoding.Serializer getSerializer(
    java.lang.String mechType,
    java.lang.Class _javaType, 
    javax.xml.namespace.QName _xmlType) {
    return
    new org.apache.axis.encoding.ser.BeanSerializer(
    javaType, xmlType, typeDesc);
    * Get Custom Deserializer
    public static org.apache.axis.encoding.Deserializer getDeserializer(
    java.lang.String mechType,
    java.lang.Class _javaType, 
    javax.xml.namespace.QName _xmlType) {
    return
    new org.apache.axis.encoding.ser.BeanDeserializer(
    javaType, xmlType, typeDesc);
    I guess my questions are as follows:
    1. Why is exception thrown in the first scenario? Is there something wrong with the WSDL? I guess there is, but I can't figure it out.
    2. When the change is made to the WDSL(adding <xsd:any processContents = "lax"/>) is there something that I need to add to the PhotoInfo class
    to process the org.apache.axis.message.MessageElement[] object. Do I need to "manually" parse that object in the PhotoCatalogBindingImpl class to get
    the values of customerName and photoID?
    Any other help would be appreciated..
    thanks,
    Karl Schwarz
    System Architect
    Northrop Grumman

  • Data service complex object deserialization

    I am building a simple data services application that has a
    many-to-one association between two classes:
    public class Product {
    public var title : String;
    public class LineItem {
    public var product : Product
    public get function title() : String { return
    this.product.title; }
    I am trying to populate a DataGrid with a list of LineItems,
    using the product's title in one of the fields. It seems, however,
    that the LineItem product property is populated with an Object, not
    a Product when returning from the DataService call. From I have
    read (see #9), this
    seems to be expected based on how the Flash player deserializes
    data.
    My question though is if there is an easy work around for
    this problem? Thus far, all I have found that works is to access a
    LineItem from the DataService result after it completes, but that
    seems very hack-ish to me.
    Thanks,
    Josh

    The InputRender is the recommended tag for complex types. The only problem is that it doesn't (currently) support object types. It supports interMedia types. You need to use the ShowValue tag and the SetAttribute tag in order to update your complex type. In our next release we will add object support to the InputRender tag.
    Thanks
    null

  • Webservice Client deserialization problem with Vectors!

    Hello!
    I'm generating a Java Proxy Client with Eclipse WTP.
    The Client works fine with normal datatypes and own Beans. But whe the return type is a Collection with own beans an exception is thrown:
    exception: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
    So whats wrong?
    In teh Webservice Explorer everything seems to be fine, my vector is serialized in item-tags:
    - <getAktionenResponse xmlns="http://commonservice">
    - <getAktionenReturn>
    - <item xmlns="">
    <aktn_nr>a12345</aktn_nr>
    <claim>222</claim>
    <geschaeftsjahr>2005</geschaeftsjahr>
    <son>333</son>
    <special_operation_code>soc12345</special_operation_code>
    <status>ready</status>
    <vin>t123</vin>
    </item>
    - <item xmlns="">
    <aktn_nr>a6789</aktn_nr>
    <claim>567</claim>
    <geschaeftsjahr>2006</geschaeftsjahr>
    <son>555</son>
    <special_operation_code>soc6789</special_operation_code>
    <status>false</status>
    <vin>t123</vin>
    </item>
    </getAktionenReturn>
    </getAktionenResponse>
    how can i solve this problem?
    the background is that I return a vector with Java Objects. I thought apache axis deserielizes automatically the vector and the bean inside??
    I'm pretty new to webservices...
    Pleas help!
    Thanks!

    As per the below link, I assumed its better to avoid collections and go with plain array of objects.
    Please let us know if I am wrong.
    http://www-128.ibm.com/developerworks/webservices/library/ws-tip-coding.html
    Regards,
    Venkat S

  • XML Document object access problem?

    Hi,
    I have created a servlet,which will call .sh file, which will call java application.........
    this java application is working as a search engine,which will do search in the XML document object...........This is working fine when only one user run this servlet...........But when more than servlet do the same it is not working......... But once first servlet create the Document object,which is main source for serching..........then second servlet will work fine.......same thing with third servlet and so on...... I used the thread.sleep()/synchronize but it is not working...bcoz i am accessing the same application.....Then instead of servlet i tried to run the java application from the Dos prompt..........But i am facing the same problem......So pl guide me bcoz everything is working excluding this..........Becoz this document object creation is taking some time........ i am creating the object shown below
    Document doc =parseXmlFile("Article.xml", false);
    Element docElem = doc.getDocumentElement();
    public static org.w3c.dom.Document parseXmlFile(String filename, boolean validating)
                   try {
         // Create a builder factory
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         factory.setValidating(validating);
         // Create the builder and parse the file
         // org.w3c.dom.Document doc = factory.newDocumentBuilder().parse(filename);
         org.w3c.dom.Document doc = factory.newDocumentBuilder().parse(new File(filename));
         return doc;
    } catch (SAXException e) {
    // A parsing error occurred; the xml input is not valid
    } catch (ParserConfigurationException e) {
    } catch (IOException e) {
    return null;
    }

    Hi,
    This is my Servlet code..............
    package PW.Feed;
    import java.io.*;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.StreamResult;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import java.util.*;
    public class PrintDom extends HttpServlet
         Document doc;
         Element docElem;
         Connection Conn=null;
         Statement stmt=null,stmt1=null;
         ResultSet rs1=null,rs=null;
         PrintWriter out;
         Vector myVector1=new Vector();
         Vector myVector2=new Vector();
         String strSql="";
         public void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
              res.setContentType("text/html");
              out=res.getWriter();
              try
                   String pubtype=req.getParameter("PubType");
                   String pubDate=req.getParameter("PubDate");
                   String toDate=req.getParameter("ToDate");
                   String fromDate=req.getParameter("FromDate");
                   if(pubDate==null)pubDate="2";
                   if(toDate==null)toDate="02/09/2005";
                   if(fromDate==null)fromDate="02/08/2005";
                   Class.forName("org.firebirdsql.jdbc.FBDriver");
                   Conn = DriverManager.getConnection("jdbc:firebirdsql:192.168.0.15/3050:D:/FBDatabases/PW1.GDB","SYSDBA","cohezia");
                   //Conn = DriverManager.getConnection("jdbc:firebirdsql:192.168.0.99/3050:/share/pw1.gdb","SYSDBA","cohezia");
                   stmt = Conn.createStatement( );
                   if(pubDate.equals("2"))
                        strSql="Select sh.ARTICLEID,sh.cuttingsdate,sh.READDATE,sh.headline,sh.SUMMARY,sh.AUTHOR,sh.PAGEFROM,sh.PUB_NAME,sh.READER_NAME,sh.PARENTTITLE,sh.CANMAIL,sh.PUBLICATION_ID,sh.JOURNALIST_ID,sh.ISPDF FROM SCANSHEADER sh,PUBLICATIONS p where sh.publication_id=p.publication_id and sh.readdate>'"+fromDate+"' and sh.readdate<'"+toDate+"' and p.pubtype='"+ pubtype +"' order by sh.ARTICLEID";
                   else
                        strSql="Select sh.ARTICLEID,sh.cuttingsdate,sh.READDATE,sh.headline,sh.SUMMARY,sh.AUTHOR,sh.PAGEFROM,sh.PUB_NAME,sh.READER_NAME,sh.PARENTTITLE,sh.CANMAIL,sh.PUBLICATION_ID,sh.JOURNALIST_ID,sh.ISPDF FROM SCANSHEADER sh,PUBLICATIONS p where sh.publication_id=p.publication_id and sh.cuttingsdate>'"+fromDate+"' and sh.cuttingsdate<'"+toDate+"' and p.pubtype='"+ pubtype +"' order by sh.ARTICLEID";
                   rs=stmt.executeQuery(strSql);
                   DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
                   doc = builder.newDocument();
                   docElem = doc.createElement("RECORDLIST");
                   doc.appendChild(docElem);
                   Element rootElem = doc.createElement("RECORDS");
                   docElem.appendChild(rootElem);
                   String artid="";
                   while(rs.next())
                             Element artElem = doc.createElement("RECORD");
                             if((rs.getString("ARTICLEID")).length()>0)artElem.setAttribute("id",rs.getString("ARTICLEID"));
                             rootElem.appendChild(artElem);
                             Element rootFieldElem = doc.createElement("FIELDS");
                             artElem.appendChild(rootFieldElem);
                             Element eleCuttingDate = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleCuttingDate);
                             eleCuttingDate.setAttribute("fieldName","CUTTINGSDATE");
                             if((rs.getString("CUTTINGSDATE")).length()>0) eleCuttingDate.appendChild(doc.createTextNode(rs.getString("CUTTINGSDATE")));
                             Element eleReadDate = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleReadDate);
                             eleReadDate.setAttribute("fieldName","READDATE");
                             if((rs.getString("READDATE")).length()>0) eleReadDate.appendChild(doc.createTextNode(rs.getString("READDATE")));
                             Element eleHeadLine = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleHeadLine);
                             eleHeadLine.setAttribute("fieldName","HEADLINE");
                             if((rs.getString("HEADLINE")).length()>0) eleHeadLine.appendChild(doc.createTextNode(rs.getString("HEADLINE")));
                             Element eleSummary = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleSummary);
                             eleSummary.setAttribute("fieldName","SUMMARY");
                             if(rs.getString("SUMMARY")==null){
                                  //out.println("String is null");
                                  else
                                  {eleSummary.appendChild(doc.createTextNode(rs.getString("SUMMARY")));}
                             Element eleAuthor = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleAuthor);
                             eleAuthor.setAttribute("fieldName","AUTHOR");
                             if((rs.getString("AUTHOR")).length()>0) eleAuthor.appendChild(doc.createTextNode(rs.getString("AUTHOR")));
                             Element elePageFrom = doc.createElement("FIELD");
                             rootFieldElem.appendChild(elePageFrom);
                             elePageFrom.setAttribute("fieldName","PAGEFROM");
                             if((rs.getString("PAGEFROM")).length()>0) elePageFrom.appendChild(doc.createTextNode(rs.getString("PAGEFROM")));
                             Element elePubName = doc.createElement("FIELD");
                             rootFieldElem.appendChild(elePubName);
                             elePubName.setAttribute("fieldName","PUBNAME");
                             if((rs.getString("PUB_NAME")).length()>0) elePubName.appendChild(doc.createTextNode(rs.getString("PUB_NAME")));
                             Element eleReaderName = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleReaderName);
                             eleReaderName.setAttribute("fieldName","READER NAME");
                             if((rs.getString("READER_NAME")).length()>0) eleReaderName.appendChild(doc.createTextNode(rs.getString("READER_NAME")));
                             Element eleParentTitle = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleParentTitle);
                             eleParentTitle.setAttribute("fieldName","PARENTTITLE");
                             if((rs.getString("PARENTTITLE")).length()>0)eleParentTitle.appendChild(doc.createTextNode(rs.getString("PARENTTITLE")));
                             Element eleCanMail = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleCanMail);
                             eleCanMail.setAttribute("fieldName","CANMAIL");
                             if((rs.getString("CANMAIL")).length()>0) eleCanMail.appendChild(doc.createTextNode(rs.getString("CANMAIL")));
                             Element elePublicationID = doc.createElement("FIELD");
                             rootFieldElem.appendChild(elePublicationID);
                             elePublicationID.setAttribute("fieldName","PUBLICATION_ID");
                             if((rs.getString("PUBLICATION_ID")).length()>0) elePublicationID.appendChild(doc.createTextNode(rs.getString("PUBLICATION_ID")));
                             Element eleJournlistID = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleJournlistID);
                             eleJournlistID.setAttribute("fieldName","JOURNALIST_ID");
                             if((rs.getString("JOURNALIST_ID")).length()>0) eleJournlistID.appendChild(doc.createTextNode(rs.getString("JOURNALIST_ID")));
                             Element eleIspdf = doc.createElement("FIELD");
                             rootFieldElem.appendChild(eleIspdf);
                             eleIspdf.setAttribute("fieldName","ISPDF");
                             if((rs.getString("ISPDF")).length()>0) eleIspdf.appendChild(doc.createTextNode(rs.getString("ISPDF")));
                             Element rootKeyElem=doc.createElement("KEYWORDS_CODES");
                        String[] arrCodes=getKeyCodes(rs.getString("ARTICLEID"));
                        int count1 = myVector1.size();
                        String[] myArray1=new String[count1];
                        myVector1.copyInto(myArray1);
                        int count2 = myVector2.size();
                        String[] myArray2=new String[count2];
                        myVector2.copyInto(myArray2);
                        for(int j=0;j<arrCodes.length;j++)
                             Element eleKeyword= doc.createElement("KEYWORD_CODE");
                             eleKeyword.setAttribute("CodeId",arrCodes[j]);
                             eleKeyword.setAttribute("LongName",myArray1[j]);
                             eleKeyword.setAttribute("CodeType",myArray2[j]);
                             rootKeyElem.appendChild(eleKeyword);
                        artElem.appendChild(rootKeyElem);
                   Source source = new DOMSource(docElem);
                   //File file = new File("/share/PrintDom.xml");
                   StringWriter rw=new StringWriter();
                   Result result = new StreamResult(rw);
                   //Result result = new DOMResult();
                   // Write the DOM document to the file
                   Transformer xformer = TransformerFactory.newInstance().newTransformer();
                   xformer.transform(source, result);
                   out.println(rw);
              catch (ClassNotFoundException e)
                        out.println("Unable to load Driver Class" + e);
                        return;
                        //fileLog.log(e,"PressWatchFrame1.PressWatchFrame1()");
              catch (SQLException se)
                   out.println(se);
              catch (Exception e)
                   out.println(e);
    finally{
                        try{
                             if(Conn!=null) Conn.close();
                        catch(SQLException ignored){}
         public String[] getKeyCodes(String strArticleId)
              Vector myVector=new Vector();
              myVector1.removeAllElements();
              myVector2.removeAllElements();
         try{
              stmt1=Conn.createStatement( );
              //String strSql1="Select codeid FROM SCANSSUBJECT where articleid='"+ strArticleId +"'";
              String strSql1="Select ss.codeid,c.longname,c.codetype FROM SCANSSUBJECT ss,CODES c where ss.codeid=c.codeid and articleid='"+ strArticleId +"'";
              rs1=stmt1.executeQuery(strSql1);
              String strCodes="";
              while(rs1.next())
                   myVector.add(rs1.getString("codeid"));
                   myVector1.add(rs1.getString("longname"));
                   myVector2.add(rs1.getString("codetype"));
              }catch (SQLException se)
                                       out.println(se);
              int count = myVector.size();
              String[] myArray = new String[count];
              myVector.copyInto(myArray);
              return myArray;
    ..................Thanx

  • Deserialization Problem with JDOM Document

    HI,
    I am using weblogic7.0 and i have created my own class which implements serializable. I set the object of this class in the ObjectMessage and send it across. Sometime i have to send some vector,sometimes string and sometime a XML document. So i can set these type of objects in my custom serializable object and send it. For sending XML , either i can send it as a string or as u said as Document object. But i want to do send it as a Document object. So i have created a an object of "org.jdom.Document" which implement serializable and setting this object into my custom object and sending this custom object in the objectmessage. But then weblogic throws some exceptions which has to do with deserialization.I am printing the exception below. (without the object of org.jdom.Document this custom object reaches safely and happily:))........can you or anybody tell me what could be the reason..
    weblogic.jms.common.JMSException: Error deserializing object
    at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:140)
    at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:143)
    at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
    at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
    at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
    ----------- Linked Exception -----------
    weblogic.jms.common.JMSException: Error deserializing object
    at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:140)
    at com.sds.kb.cm.CMMDBReceiver.onMessage(CMMDBReceiver.java:143)
    at weblogic.ejb20.internal.MDListener.execute(MDListener.java:356)
    at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:290)
    at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:271)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2303)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:2226)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
    any help would be apprciated..
    Akhil

    Are you sure that your object gets serialized in the first place? You could use the writeObject method (explained in Javadoc for java.io.Serializable) to snoop the process.
    I am actually surprised you can serialize a DOM document.
    /Sebastian

  • Array in object overwrite problem

    Hi
    hope you can help me with this as i've already been using too much time solving it myself :)
    I got a Board class which have an ArrayList<ArrayList<Integer>> as attribute. The Board class is controlled from my service class. I need to create a lot of boards which all needs different ArrayList<ArrayList<Integer>> input, so i made a for loop which creates the Boards. The problem is however when i change the variable i used to create the object the values also change inside the object even though the create method have already been called. English isn't my native language so it's a bit hard to explain :) Please ask if there's something you don't understand.
    thanks in advance!
    I made a temporary solution by making a 3d arraylist so i won't have to overwrite any values but thats not rly a good solution as it's starting to give me problems elsewhere.
    the method that creates the boards is Service.importCSV()
    model.Board
    package model;
    import java.util.ArrayList;
    public class Board {
         private String controleNumber;
         private ArrayList<ArrayList<Integer>> numbers = new ArrayList<ArrayList<Integer>>();
         private ArrayList<ArrayList<Integer>> remainingNumbers = new ArrayList<ArrayList<Integer>>();
         public Board(String controlenumber, ArrayList<ArrayList<Integer>> numbers) {
              this.controleNumber = controlenumber;
              this.numbers = numbers;
              this.remainingNumbers = numbers;
         public String getControlenumber() {
              return controleNumber;
         public void setControlenumber(String controleNumber) {
              this.controleNumber = controleNumber;
         public ArrayList<ArrayList<Integer>> getNumbers() {
              return numbers;
         public void setNumbers(ArrayList<ArrayList<Integer>> numbers) {
              this.numbers = numbers;
         public void setRemainingNumbers(ArrayList<ArrayList<Integer>> remainingNumbers) {
              this.remainingNumbers = remainingNumbers;
         public ArrayList<ArrayList<Integer>> getRemainingNumbers() {
              return remainingNumbers;
         public String toString() {
              return String.valueOf(controleNumber);
    }service.Service
    package service;
    import gui.MainFrame;
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import ramdao.BoardDao;
    import model.Board;
    public class Service {
         private static ArrayList<Integer> numbers = new ArrayList<Integer>();
         public static List<Board> getAllBoards() {
              return BoardDao.getAllBoards();
         public static Board createBoard(String controleNumber, ArrayList<ArrayList<Integer>> numbers) {
              Board board = new Board(controleNumber, numbers);
              BoardDao.store(board);
              return board;
         public static void deleteBoard(Board board) {
              BoardDao.remove(board);
         public static Board checkFor(int checkFor) {
              for(Board board : getAllBoards()) {
                   System.out.println(board.getRemainingNumbers());
                   for(ArrayList<Integer> row : board.getRemainingNumbers()) {
                        for(int i=0;i<row.size();i++) {
                             if(numbers.contains(row.get(i))) {
                                  row.remove(row.get(i));
                   if(checkFor==1) {
                        for(ArrayList<Integer> row : board.getRemainingNumbers()) {
                             if(row.size()==0) {
                                  return board;
                   else if(checkFor==2) {
                        if(board.getRemainingNumbers().get(0).size()==0 && board.getRemainingNumbers().get(1).size()==0) {
                             return board;
                        else if(board.getRemainingNumbers().get(0).size()==0 && board.getRemainingNumbers().get(2).size()==0) {
                             return board;
                        else if(board.getRemainingNumbers().get(1).size()==0 && board.getRemainingNumbers().get(2).size()==0) {
                             return board;
                   else if(checkFor==3) {
                        if(board.getRemainingNumbers().size()==0) {
                             return board;
                   System.out.println(board.getRemainingNumbers()  );
              return null;
         public static ArrayList<Integer> oneToGo(int rows, ArrayList<Integer> numbers) {
              //TO-DO
              return null;
         public static void importCSV(ArrayList<String> buff) {
              ArrayList<ArrayList<ArrayList<Integer>>> allNumbers = new ArrayList<ArrayList<ArrayList<Integer>>>();
              int line = 0;
              String controleNumber = "";
              String[] splitLine = new String[10];
              for(int i=0;i<buff.size();i++) {
                   //adds the split buff to splitLine
                   for(int q=0;q<buff.get(i).split(";").length;q++) {
                        if(buff.get(i).split(";")[q].equals(""))
                             splitLine[q]="0";
                        else
                             splitLine[q]=buff.get(i).split(";")[q];
                   if(line==0) {
                        allNumbers.add(new ArrayList<ArrayList<Integer>>());
                        ArrayList<Integer> row = new ArrayList<Integer>();
                        allNumbers.get(allNumbers.size()-1).add(row);
                        controleNumber=buff.get(i).split(";")[0];
                        for(int q=buff.get(i).split(";").length;q<10;q++) {
                             splitLine[q]="0";
                        for(int q=0;q<9;q++) {
                             row.add(Integer.valueOf(splitLine[q+1]));
                   else if(line==1) {
                        ArrayList<Integer> row = new ArrayList<Integer>();
                        allNumbers.get(allNumbers.size()-1).add(row);
                        for(int q=buff.get(i).split(";").length;q<9;q++) {
                             splitLine[q]="0";
                        for(int q=0;q<9;q++) {
                             row.add(Integer.valueOf(splitLine[q]));
                   else if(line==2) {
                        ArrayList<Integer> row = new ArrayList<Integer>();
                        allNumbers.get(allNumbers.size()-1).add(row);
                        for(int q=buff.get(i).split(";").length;q<9;q++) {
                             splitLine[q]="0";
                        for(int q=0;q<9;q++) {
                             row.add(Integer.valueOf(splitLine[q]));
                        createBoard(controleNumber, allNumbers.get(allNumbers.size()-1));
                        line=-1;
                   line++;
         public static ArrayList<String> readFile(File file) {
              FileInputStream fileInputStream = null;
              ArrayList<String> buff = new ArrayList<String>();
              String line;
              try {
                   fileInputStream = new FileInputStream(file);
                   BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
                   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));
                   while ((line = bufferedReader.readLine())!= null) {
                        buff.add(line);
              catch (IOException ex) {
                   Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
              finally {
                   try {
                        fileInputStream.close();
                   catch (IOException ex) {
                        Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
              return buff;
         public static void addNumber(int number) {
              numbers.add(number);
         public static ArrayList<Integer> getNumbers() {
              return numbers;
    }

    Tried the code but it's full of compiletime errors. I changed it a little but still got
    Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems:
         board cannot be resolved
         row cannot be resolved
         line cannot be resolved
         board cannot be resolved
         board cannot be resolvedwith the following code
    public static void importCSV(ArrayList<String> buff) {
              ArrayList<ArrayList<ArrayList<Integer>>> allNumbers
              = new ArrayList<ArrayList<ArrayList<Integer>>>();
              String[] splitLine = new String[10];
              String controleNumber;
              for(int i=0;i<buff.size();i++) {
                   int line = i % 3;
                   // split the buffer into fields
                   String[] splitBuf = buff.get(i).split(";");
                   int start = 0;
                   if(line==0) { // new board
                        ArrayList<ArrayList<Integer>> board = new ArrayList<ArrayList<Integer>>();
                        controleNumber = splitBuf[0];
                        start = 1;
                   ArrayList<Integer> row = new ArrayList<Integer>();
                   // fill row from the buffer fields...
                   for(int b = start, last = start+9; b < last; b++) {
                        if(b >= splitBuf.length || splitBuf.length() == 0)
                             row.add(0);
                        else
                             row.add(Integer.valueOf(splitBuf[b]));
              }This is my main problem:createBoard(controleNumber, board);
         board.clear();
         row.clear();The board that i created using the createBord method doesn't hold any numbers because i cleared the arrays i used to create it *after* creating it.
    got my software construction teacher to help me today :)
    works!     public static void importCSV(ArrayList<String> buff) {
              ArrayList<ArrayList<Integer>> board = new ArrayList<ArrayList<Integer>>();
              ArrayList<Integer> row = new ArrayList<Integer>();
              String controleNumber = "";
              int line;
              for(int i=0;i<buff.size();i++) {
                   line = i % 3;
                   String[] splitBuf = buff.get(i).split(";");
                   int start = 0;
                   if(line==0) { // new board
                        board = new ArrayList<ArrayList<Integer>>();
                        controleNumber = splitBuf[0];
                        start = 1;
                   row = new ArrayList<Integer>();
                   // fill row from the buffer fields...
                   for(int b = start, last = start+9; b < last; b++) {
                        if(b >= splitBuf.length || splitBuf[b].length() == 0)
                             row.add(0);
                        else
                             row.add(Integer.valueOf(splitBuf[b]));
                   board.add(row);
                   if(line==2) {
                        createBoard(controleNumber, board);
         }Edited by: Briam on Apr 12, 2010 12:37 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • ARRAY object creation problem in Java

    Hi I am encountring when trying to create ARRAY in one case
    while the same code works perfectly in other case.
    The following code works fine:
    Connection con=getConnection();
    String[][] elements = new String[1][2];
    elements[0][0] =new Long(1111).toString();
    elements[0][1] =new Long(2222).toString();
    ArrayDescriptor desc = ArrayDescriptor.createDescriptor("TYPE1",con);
    toReturn = new ARRAY(desc,con,elements);
    The following CODE GIVES ERROR :
    Connection con=getConnection();
    String[] elements = new String[1];
    elements[0] =new Long(1111).toString();
    ArrayDescriptor desc = ArrayDescriptor.createDescriptor("TYPE2",con);
    toReturn = new ARRAY(desc,con,elements);
    Please help.
    FYI :
    type TYPE1 is table of OBJECT : (ID NUMBER, Name VARCHAR2(50));
    type TYPE2 is table of OBJECT : (ID NUMBER);
    I tried to pass array of long ,int etc in case of TYPE2 but with no advantage.

    Hi Lawrence,
    I have checked the system in the correct path only. I am checking in the following path
      System Admnistration -->System Landscape-->then Portal content (on the left hand side)
    What do you mean by consistancy problem ??? Mean while i will check with basis guys Apart from consulting them , As a Ep consultant do i need to check anything???
    please correct me if i am wrong.....

  • Bussiness object serialization problem

    Hi, I have a little problem with serialization, when I want to create xml from Business object. Example:
    MyBoObject obj = new MyBoObject ();
    obj.atr1 = "aaa";
    obj.atr2 = "bbb";
    String xml = DynamicXml.createXmlTextFor(object : obj, topLevelTag : "something");
    display(xml);
    And displayed result is:
    <something>
    <atr2>bbb</atr2>
    </something>
    atr1 is attribute, which is inherited from db table.
    atr2 is atribute, which I created (it is not inherited from db table)
    Whole problem is, that it only serialize atr2 - from some reason it completely ignores atr1 and his value.
    Like I can't serialize attributes, which are inherited from db table.
    But when I created new attribute atr2 in my Business Object (which is not inherited from db table), everything work ok. Where's the problem? I read docs, but found nothing...
    Edited by: user12189610 on Nov 9, 2009 2:42 AM
    Edited by: user12189610 on Nov 9, 2009 2:46 AM

    If you need a simple project that duplicates this problem for customer support, here's where I put one: http://www.4shared.com/file/181611971/d21e9444/_2__DynamicXMLBug.html.
    Have them import the project, start Studio's Engine, login as "test" and start the Workspace. Create a work item instance and then run the work item when it reaches the "Test" activity. When you run the logic, you'll see this displayed:
    <?xml version="1.0" encoding="UTF-8"?>
    <poHeir xmlns="http://bea.com/albpm/DynamicXml/version/2.0">
        <nameForPO>Dan</nameForPO>
    </poHeir>They should note that only the "nameForPO" tag is created by the DynamicXml.createXmlTextFor() method. "nameForPO" is an attribute I manually added to the XML Heir BPM Object. The attributes of the inherited heir (e.g. "poHeir.orderDate" and "poHeir.billTo") are not included as tags in the generated XML even though these attributes have been set in the logic.

  • Creating callable object+ authorization problem

    Hi,
    I am following the tutorial to create the first process (GP). I assigned all designtime specific roles. I can now  create a content package object. But when I try to create the callable object, I come across the following error:
    You are not authorized to start the design time
    What going wrong! A quick reply will be appreciated!
    Mayukh

    I restarted the server. But the problem persists.
    Let me give more details:
    It says :
    YOU CAN
    and then the following list
    Create Action  #
    Create Callable Object #
    Create Process #
    Create Object View
    Create Block #
    Create Content Package Object
    Create Simple Process
    Create Process by Semantics
    The problem is with the ones I marked as # and for the others it works fine.
    I assigned the role : designtime_all and all other roles where the term designtime occurs.
    Namely:
    UME com.sap.caf.eu.gp designtime.businessobject
    UME com.sap.caf.eu.gp designtime.admin
    UME com.sap.caf.eu.gp designtime.process
    UME com.sap.caf.eu.gp designtime.callableobject
    UME com.sap.caf.eu.gp designtime.logicalcriteria
    UME com.sap.caf.eu.gp designtime.businessobject
    UME com.sap.caf.eu.gp designtime.admin
    UME com.sap.caf.eu.gp designtime.process
    UME com.sap.caf.eu.gp designtime.callableobject
    UME com.sap.caf.eu.gp designtime.logicalcriteria
    UME com.sap.caf.eu.gp designtime.translation
    UME com.sap.caf.eu.gp designtime.cpkgobject
    UME com.sap.caf.eu.gp designtime.ertemplate
    UME com.sap.caf.eu.gp designtime.all
    UME sap.com_tclmwebadmin~permissions Applications_Start_Stop
    Phew!
    Mayukh

  • Applet-servlet communication, object serialization, problem

    hi,
    I encountered a problem with tomcat 5.5. Grazing the whole web i didn't find any solution (some guys are having the same problem but they also got no useful hint up to now). The problem is as follows:
    I try to build an applet-servlet communication using serialized objects. In my test scenario i write a serialized standard java object (e.g. a String object) onto the ObjectOutputStream of the applet/test-application (it doesn't matters wheter to use the first or the latter one for test cases) and the doPost method of the servlet reads the object from the ObjectInputStream. That works fine. But if i use customized objects (which should also work fine) the same code produces an classnotfound exception. When i try to read and cast the object:
    TestMessage e = (TestMessage)objin.readObject();
    java.lang.ClassNotFoundException: TestMessage
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ...That seems strange to me, because if i instantiate an object of the same customized class (TestMessage) in the servlet code, the webappclassloader doesn't have any problems loading and handling the class and the code works fine!
    The class is located in the web-inf/classes directory of the application. I've already tried to put the class (with and without the package structure) into the common/classes and server/classes directory, but the exception stays the same (I've also tried to build a jar and put it in the appropriate lib directories).
    I've also tried to catch a Throwable object in order to get information on the cause. But i get a "null" value (the docu says, that this will may be caused by an unknown error).
    I've also inspected the log files intensively. But they gave me no hint. Until now I've spend a lot of time on searching and messing around but i always get this classnotfound exception.
    I hope this is the right place to post this problem and i hope that there is anyone out there who can give me some hint on solving this problem.
    Kindly regards,
    Daniel

    hi, thanks for the reply,
    all my classes are in the web-inf/classes of the web-app and have an appropriate package structure. thus the TestMessage class is inside a package.
    i tried some names for the testclass but it didn't matter. the exception stays the same. I also tried to put the jar in the common/lib but the problem stays.
    Well the problem with loaded classes: As i mentioned in the post above i can instantiate an object of TestMessage in the code without any problems (so the classloader of my webapp should know the class!!)
    only when reading from the objectinputstream the classloader doesn't seem to know the class?? maybe theres a parent classloader resposible for that and doesn't know the class?
    strange behaviour...
    p.s. sending the same object from the servlet to the client works well
    regards
    daniel
    Message was edited by:
    theazazel

  • Object Type Problem

    Hi
    I faced some problems with O8(Release 8.0.5.0.0) object types.
    Look at the following definition:
    CREATE TYPE T_JMJX AS OBJECT( LBNO NUMBER(3),...);
    CREATE TYPE LIST_JMJX AS TABLE of T_JMJX;
    CREATE TABLE JXGC.JMJXJL
    (JMJX LIST_JMJX,...)
    NESTED TABLE JMJX STORE AS N_JMJXJL;
    One day when I opened Schema Manager,I got a shock: TABLE JXGC.JMJXJL
    has four colunms with the same name !!
    name     schema datatype
    JMJX     none LIST_JMJX
    JMJX     none LIST_JMJX
    JMJX     none LIST_JMJX
    JMJX     JXGC LIST_JMJX
    And I query USER_TAB_COLUMNS, it do have 4 records.
    But in SQL*Plus I type 'decs JMJXJL',the column JMJX appears only once.
    Other tables that has object type columns face the same problem.
    This doesn't has any infection on my applications.
    The real problem comes when one day I want to move the user JXGC to an
    other server.
    Export was done successfully but has a curious phenomenon:
    Exporting NJMJXJL(the Nested Table)......19678 Exported
    The number of rows Exported is about four times than the rows it
    should has.
    When Impport goes to the tables that have object type columns ,I got
    the following errors:
    Importing Table JMJXJL ........
    IMP-00009: abnormal end of export file
    Import terminated successfully with warnings.
    Please help me to solve this problem.Thanks a lot!

    Stone,
    You need to go to metalink.oracle.com to file an iTAR on this.
    Regards,
    Geoff
    Hi
    I faced some problems with O8(Release 8.0.5.0.0) object types.
    Look at the following definition:
    CREATE TYPE T_JMJX AS OBJECT( LBNO NUMBER(3),...);
    CREATE TYPE LIST_JMJX AS TABLE of T_JMJX;
    CREATE TABLE JXGC.JMJXJL
    (JMJX LIST_JMJX,...)
    NESTED TABLE JMJX STORE AS N_JMJXJL;
    One day when I opened Schema Manager,I got a shock: TABLE JXGC.JMJXJL
    has four colunms with the same name !!
    name     schema datatype
    JMJX     none LIST_JMJX
    JMJX     none LIST_JMJX
    JMJX     none LIST_JMJX
    JMJX     JXGC LIST_JMJX
    And I query USER_TAB_COLUMNS, it do have 4 records.
    But in SQL*Plus I type 'decs JMJXJL',the column JMJX appears only once.
    Other tables that has object type columns face the same problem.
    This doesn't has any infection on my applications.
    The real problem comes when one day I want to move the user JXGC to an
    other server.
    Export was done successfully but has a curious phenomenon:
    Exporting NJMJXJL(the Nested Table)......19678 Exported
    The number of rows Exported is about four times than the rows it
    should has.
    When Impport goes to the tables that have object type columns ,I got
    the following errors:
    Importing Table JMJXJL ........
    IMP-00009: abnormal end of export file
    Import terminated successfully with warnings.
    Please help me to solve this problem.Thanks a lot!

Maybe you are looking for

  • Scroll lag/high scroll latency (not slow or jerky) MacBook White Early 2009 (MacBook 5,2)

    I'm having a strange problem that's not easy to explain. It will probably take one or two reads! I have two Macs, one has the problem, the other does not: 2009 MacBook White 2GHz Core 2 Duo - 8GB 667MHz DDR2 SDRAM - NVIDIA 9400M 256MB Dedicated - OS

  • HTML content in JEditroPane

    Object o = messages[msgno].getContent(); if(o!=null){       if (o instanceof String) {            txtcontent.setText((String)o);       } else if (o instanceof Multipart) {            System.out.println("This is a Multipart");            Multipart mp

  • DC dependencies problem

    Hi, I have created two DC's - one java DC, and one J2EE components/Library DC.  Java DC include only one Class. This class is added to public part (two times with purpose compilation and purpose assembly). I have added both public parts of Java DC tw

  • CSS list-based navigation bar (Wordpress menu) doesn't render.

    This website is powered by Wordpress with a custom HTML5/CSS3 theme. However, even after various attempts to debug and recode, the navigation menu (based on WP3's built-in menu feature) fails to render in Firefox, where it renders normally in Safari

  • CAN Text Box/Shape with Text on top of Flash?

    Hi, i'm wondering, Do the Text Box/Shape with Text posible to put on top of the Flash?Do it able to read the Text after published? I'm scratching my head...Safari Have no problem to read it but Windows user can't read the text. Any idea?