ADF DataControl for WebService with unexpected blank objects

Hello experts!
I'm developing for BPM Suite 11.1.1.5 PS4 Feature Pack using JDeveloper 11.1.1.5
I am currently using Data Controls for web services that interact with SAP; I can retrieve information successfully displaying items in tables and selectOneChoice lists without a problem.
There are no Java classes for the Data Controls, everything is handled by the XML files created by JDeveloper.
The issue happens when creating the input parameters for a web service that updates data in the remote system. The web service has complex types with lists of complex types. I am currently using the iterator for the items on the complex types to create rows and add values to those rows. The problem is that for some reason the input for those lists always contain one extra object with no data (this was identified with the help of tcpmon).
I'll use the example of the Barcodelist list of items; the corresponding iterators are BarcodelistIterator and itemIterator2. There's also an action binding for the creation of a new row.
The bindings:
<accessorIterator MasterBinding="ZPostInvoiceAndAttachment_parametersIterator"
Binds="Barcodelist" RangeSize="25" DataControl="sapPost"
BeanClass="sapPost.Types.ZPostInvoiceAndAttachment.Barcodelist"
id="BarcodelistIterator"/>
<accessorIterator id="itemIterator2" MasterBinding="BarcodelistIterator"
Binds="item" RangeSize="25" DataControl="sapPost"
BeanClass="sapPost.Types.ZPostInvoiceAndAttachment.Barcodelist.item"/>
<action IterBinding="itemIterator2" id="CreateInsert2"
InstanceName="sapPost.Types.ZPostInvoiceAndAttachment.Barcodelist.item"
DataControl="sapPost" RequiresUpdateModel="true"
Action="createRow"/>
This is the definition for item.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<JavaBean xmlns="http://xmlns.oracle.com/adfm/beanmodel" version="11.1.1.60.13"
id="item"
Package="sapPost.Types.ZPostInvoiceAndAttachment.Barcodelist"
BeanClass="sapPost.Types.ZPostInvoiceAndAttachment.Barcodelist.item"
isJavaBased="false">
<Attribute Name="Barcode" IsNotNull="true" Type="java.lang.String"/>
<Attribute Name="BarcodeId" IsNotNull="true" Type="java.lang.String"/>
<Attribute Name="Contrep" IsNotNull="true" Type="java.lang.String"/>
<Attribute Name="Docid" IsNotNull="true" Type="java.lang.String"/>
<Attribute Name="Ardate" IsNotNull="true" Type="java.lang.String"/>
<Attribute Name="Doctype" IsNotNull="true" Type="java.lang.String"/>
</JavaBean>
This is the code to insert a single item in the list. I clear all items for the iterator with a method I will show below
//Barcode List
DCIteratorBinding itr4 = ADFUtils.findIterator("itemIterator2");
ADFUtils.clearAllRowsForIterator(itr4);
OperationBinding createBarcodeList = ADFUtils.findOperation("CreateInsert2");
createBarcodeList.execute();
Row barcodeRow = itr4.getCurrentRow();
barcodeRow.setAttribute("Barcode", "20120208114025");
barcodeRow.setAttribute("BarcodeId", "01");
barcodeRow.setAttribute("Contrep", "ZT"); //ZT for Test Documentum, ZD for Production
barcodeRow.setAttribute("Docid", "DCTM3701E24080000D9A");
barcodeRow.setAttribute("Ardate", "2011-09-01");
barcodeRow.setAttribute("Doctype", "PDF");
ADFUtils.clearAllRowsForIterator method:
public static void clearAllRowsForIterator(DCIteratorBinding itr) {
Row[] allItems = itr.getAllRowsInRange();
for( int i = 0; i < allItems.length; i++ ) {
itr.removeCurrentRow();
The code below is implemented in an ActionListener for a button which calls the web service method:
public void postToSAP(ActionEvent actionEvent) {
setPostInput(); //sets all input parameters
OperationBinding op = ADFUtils.findOperation("ZPostInvoiceAndAttachment");
Object returned = op.execute();
When I monitor what is being sent in the SOAP envelop using tcpmon I get 2 items for the barcodelist (and similarly an additional blank item for every list in the input parameters):
     <Barcodelist>
          <item>
               <Barcode>20120208114025</Barcode>
               <BarcodeId>01</BarcodeId>
               <Contrep>ZT</Contrep>
               <Docid>DCTM3701E24080000D9A</Docid>
               <Ardate>2011-09-01</Ardate>
               <Doctype>PDF</Doctype>
          </item>
          <item>
               <Barcode/><BarcodeId/><Contrep/><Docid/><Ardate/><Doctype/>
          </item>
     </Barcodelist>
This causes the web service to return an error as there's a blank item in the list.
I have checked the number of rows in the barcode list before and after the web service call and it is always 1. I can't find where this blank item is coming from. I searched the web but all I found which would address this would be to implement java classes; but the goal here would be to achieve this with as less java programming effort as possible.
Any help is greatly appreciated.
Bruno

user1113055 wrote:
... the consequent adaptation of the existing JSPXs based on the previous definition of the view objects was quite painful: i found very hard to reflect the changes to the JSPXs and, in some cases, i had to rewrite the pages from scratch! You will need to be more specific about the issues that you have encountered. Synchronization and refactoring is supported in JDeveloper for the model, the view and the controller. For what it's worth, take a look at these entry-level posts that could provide some additional inside:
http://jdeveloperfaq.blogspot.com/2010/02/faq-15-how-to-synchronize-adf-entity.html
http://jdeveloperfaq.blogspot.com/2010/04/faq-20-how-to-refactor-adf-components.html

Similar Messages

  • My iPhone4 vibrated for ages with a blank screen, now it won't turn on.

    My iPhone4 vibrated for ages with a blank screen, now it won't turn on. It was fully charged as well.

    Plug it in to wall power.  If it doesn't automatically come on within 15 minutes, try a Reset... press the home and sleep/lock buttons until you see the Apple logo. Takes about 5-15 secs of button holding and you won't lose any data or settings.  You might need to hold the buttons for as long as a minute.
    If it still doesn't turn on, you likely have a hardware problem.

  • How ADF BC can cope with unexpected changes to the underlying database

    Hi all,
    i have been experimenting with Fusion Web Applications based on ADF BCs for a few weeks now. The framework is, indeed, very powerful but i wonder if it is flexible too and, in particular, if it is able to smoothly adapt to changes occurring on the underlying database. I have some doubts about that cause, in some circumstances, i found myself in the need of modifying the database structure (removing or adding columns or constraints to tables) and, though i was able to quickly and easily reflect those changes to entity and view objects thanks to ADF synchronization, the consequent adaptation of the existing JSPXs based on the previous definition of the view objects was quite painful: i found very hard to reflect the changes to the JSPXs and, in some cases, i had to rewrite the pages from scratch!
    Since the company i work for is projecting to use ADF for realizing a web application backed by a very large database (which i bet will undergo to numerous changes during the development phase!) i'd like to know if there is something i'm missing here and to ask you some advices on the recommended approaches to develop agile and flexible Fusion Web Applications with ADF BCs.
    Thanks in advance, bye!
    Fabio

    user1113055 wrote:
    ... the consequent adaptation of the existing JSPXs based on the previous definition of the view objects was quite painful: i found very hard to reflect the changes to the JSPXs and, in some cases, i had to rewrite the pages from scratch! You will need to be more specific about the issues that you have encountered. Synchronization and refactoring is supported in JDeveloper for the model, the view and the controller. For what it's worth, take a look at these entry-level posts that could provide some additional inside:
    http://jdeveloperfaq.blogspot.com/2010/02/faq-15-how-to-synchronize-adf-entity.html
    http://jdeveloperfaq.blogspot.com/2010/04/faq-20-how-to-refactor-adf-components.html

  • Tutorials for starting with SAP Business Objects Explorer: Excel / Crystal

    Hello,
    we want to start with SAP Business Objects Explorer. I have been searching for tutorials for while without success.
    Are there any tutorials or documentation that shows how to work with excel-files as data source or how to upload Crystal reports files (.rpt) to the Explorer?
    Thanks in advance for helpful hints.
    Best regards,
    André

    As far as I know the SAP BUsiness Explorer car retrieve data either from a universe or from the SAP BWA. So hat you should be looking for is information on how to set Excel files as data sources for universes.
    Regards,
    Stratos

  • Using CreateObject for Webservice with username and password

    When using createObject() to call a web service how do I pass
    in the user name and password required by the service?
    If I do a cfdump on the webservice object I see it has
    setUserName() and setPassword() methods but they don't seem to be
    working.
    I also see there are properties named "USERNAME_PROPERTY" and
    "PASSWORD_PROPERTY" but I can't seem to modify them in code. I
    suppose they are protected.
    example:
    ws = createObject("webservice", "
    http://url.to/wsdl.xml",
    "serviceport");
    ws.setUserName("myawesomeusername");
    ws.setPassword("myawesomepassword");
    myReturn = ws.serviceMethodCall("bla");

    quote:
    Originally posted by:
    MACRStockHolder
    For anyone that encounters the same issue/question;
    apparently you can't apply a username/password to the object call
    like you can when using <cfinvoke> to make a web service
    call.
    FYI Adobe: this is VERY limiting, I have to use a web service
    that uses in/out parameters which to the best of my knowledge
    requires the use of createObject() but at the same time the web
    service requires a username and password which I can only do with
    <cfinvoke>. Looks like I will be writing a compiled custom
    tag just for a workaround.
    According to the docs you can provide a username and password
    by passing a struct containing these items to CreateObject
    http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_c-d_18.html#45 14398
    If you like cfinvoke use it. You can get return values by
    using the returnVariable argument. I would assume mutliple output
    parameters would be returned in a struct.
    http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_i_10.html#4001127

  • Stub generated in Jdev9i for webservice with 'Vector' return type

    Hi,
    In the OAF page that I am developing, I am trying to consume a web service generated in SAP PI using Jdeveloper. My Jdeveloper version is 9.0.3.5(I need to use this version since I need to deploy the OAF page in EBS11i). The stub generated based on the WSDL is given below.
    import oracle.soap.transport.http.OracleSOAPHTTPConnection;
    import org.apache.soap.encoding.soapenc.BeanSerializer;
    import org.apache.soap.encoding.SOAPMappingRegistry;
    import org.apache.soap.util.xml.QName;
    import java.util.Vector;
    import org.w3c.dom.Element;
    import java.net.URL;
    import org.apache.soap.Body;
    import org.apache.soap.Envelope;
    import org.apache.soap.messaging.Message;
    * Generated by the Oracle9i JDeveloper Web Services Stub/Skeleton Generator.
    * Date Created: Tue Jan 25 16:12:55 IST 2011
    * WSDL URL: file:/C://Working/XXXXXXX/RegConsComplaint_OB.wsdl
    public class RegConsComplaint_OBServiceStub
      public RegConsComplaint_OBServiceStub()
        m_httpConnection = new OracleSOAPHTTPConnection();
      public static void main(String[] args)
        try
          RegConsComplaint_OBServiceStub stub = new RegConsComplaint_OBServiceStub();
          // Add your own code here.
        catch(Exception ex)
          ex.printStackTrace();
      public String endpoint = "http://XXXXXX:8000/sap/xi/...../RegConsComplaint_OB";
      private OracleSOAPHTTPConnection m_httpConnection = null;
      private SOAPMappingRegistry m_smr = null;
      public Vector RegConsComplaint_OB(Element requestElem) throws Exception
        URL endpointURL = new URL(endpoint);
        Envelope requestEnv = new Envelope();
        Body requestBody = new Body();
        Vector requestBodyEntries = new Vector();
        requestBodyEntries.addElement(requestElem);
        requestBody.setBodyEntries(requestBodyEntries);
        requestEnv.setBody(requestBody);
        Message msg = new Message();
        msg.setSOAPTransport(m_httpConnection);
        msg.send(endpointURL, "http://sap.com/xi/WebService/soap1.1", requestEnv);
        Envelope responseEnv = msg.receiveEnvelope();
        Body responseBody = responseEnv.getBody();
        return responseBody.getBodyEntries();
    }I am wondering whether I will be able to use this stub generated by Jdeveloper since the input type is 'Element' and return type is 'Vector'; while in the Jdeveloper documentation the supported "primitive XML Schema types and arrays of primitive XML Schema types as parameters and return values for web services" do not include either of the two.
    Regards,
    Sujoy

    Hi Sujoy
    I have been having big problems consuming microsoft sharepoint webservices using jDeveloper 9i.
    Problems with jdk version compatability with jDev and NTLM authentication (Sharepoint).
    so switching to db connection using utl_http.
    Can you pls send me the code set for reference at [email protected]
    thanks.
    Regards
    Sachin

  • Property List error: Unexpected character b at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set.

    Hi,
    I have a MBP 13' Late 2011 and Yosemite 10.10.2 (14C1514).
    Until yesterday, I was using Garmin ConnectIQ SDK and all was working fine.
    Yesterday, I've updated my system with latest security updates and Xcode updates too (Version 6.2 (6C131e)).
    Since, I can't launch the ConnectIQ simulator app, I have this message in console :
    8/04/2015 15:19:04,103 mds[38]: There was an error parsing the Info.plist for the bundle at URL Info.plist -- file:///Volumes/Leto/connectiq-sdk-mac-1.1.0_2/ios/ConnectIQ.bundle/
    The data couldn’t be read because it isn’t in the correct format.
    <CFBasicHash 0x7fa64f44e9a0 [0x7fff7dfc7cf0]>{type = immutable dict, count = 2,
    entries =>
      0 : <CFString 0x7fff7df92580 [0x7fff7dfc7cf0]>{contents = "NSDebugDescription"} = <CFString 0x7fa64f44f0a0 [0x7fff7dfc7cf0]>{contents = "Unexpected character b at line 1"}
      1 : <CFString 0x7fff7df9f5e0 [0x7fff7dfc7cf0]>{contents = "kCFPropertyListOldStyleParsingError"} = Error Domain=NSCocoaErrorDomain Code=3840 "The data couldn’t be read because it isn’t in the correct format." (Conversion of string failed.) UserInfo=0x7fa64f44eda0 {NSDebugDescription=Conversion of string failed.}
    I have looked at this file and it looks like a binary plist
    bplist00ß^P^V^A^B^C^D^E^F^G^H
    ^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_ !"$%&'()'+,^[\CFBundleNameWDTXcodeYDTSDKName_^P^XNSHumanReadableCopyrightZDTSDKBuild_^P^YCFBundleDevelopmentRegion_^P^OCFBundleVersi    on_^P^SBuildMachineOSBuild^DTPlatformName_^P^SCFBundlePackageType_^P^ZCFBundleShortVersionString_^P^ZCFBundleSupportedPlatforms_^P^]CFBundleInfoDictionaryVersion_^P^RCFBundleE    xecutableZDTCompiler_^P^PMinimumOSVersion_^P^RCFBundleIdentifier^UIDeviceFamily_^P^QDTPlatformVersion\DTXcodeBuild_^P^QCFBundleSignature_^P^ODTPlatformBuildYConnectIQT0611[iph    oneos8.1o^P-^@C^@o^@p^@y^@r^@i^@g^@h^@t^@ ^@©^@ ^@2^@0^@1^@5^@ ^@G^@a^@r^@m^@i^@n^@.^@ ^@A^@l^@l^@ ^@r^@i^@g^@h^@t^@s^@ ^@r^@e^@s^@e^@r^@v^@e^@d^@.V12B411RenQ1V14C109Xiphoneos    TBNDLS1.0¡#XiPhoneOSS6.0YConnectIQ_^P"com.apple.compilers.llvm.clang.1_0S8.1_^P^Tcom.garmin.ConnectIQ¡*^P^AW6A2008aT????^@^H^@7^@D^@L^@V^@q^@|^@<98>^@ª^@À^@Ï^@å^A^B^A^_^A?^AT^    A_^Ar^A<87>^A<96>^Aª^A·^AË^AÝ^Aç^Aì^Aø^BU^B\^B_^Ba^Bh^Bq^Bv^Bz^B|^B<85>^B<89>^B<93>^B¸^B¼^BÓ^BÕ^B×^Bß^@^@^@^@^@^@^B^A^@^@^@^@^@^@^@-^@^@^@^@^@^@^@^@^@^@^@^@^@^@^Bä
    I guess it is a normal format but my system seems to be unable to read binary plist ?
    I tried some stuff with plutil
    plutil -lint Info.plist
    Info.plist: Unexpected character b at line 1
    Same for convert
    plutil -convert xml1 Info.plist
    Info.plist: Property List error: Unexpected character b at line 1 / JSON error: JSON text did not start with array or object and option to allow fragments not set.
    I also try to download a fresh version of the connectIQ SDK and no changes.
    Any idea ?
    Thanks

    Step by step, how did you arrive at seeing this agreement?

  • ADF Mobile App integration with webservices, connection refused error

    I created an ADF application for department search with business components and exposed this as a webservice. I can access the WSDL locally from a browser. Then created an ADF mobile application and deployed it to android emulator. I am able to deploy the application to emulator and I can see the app on Android emulator. When I try to search for any department, I am getting "cannot connect to localhost on port 7101 : connection refused". My server is started already and the port number is also correct. Did any one came across this issue before? Even the WSDL URL is not accessible from the browser of android emulator.
    Edited by: adf_forum on Nov 16, 2012 2:16 PM

    Hi,
    One more thing to keep in mind is that Android emulator is itself a network host, and localhost will likely loop back into itself, i.e. emulator. Please try to set up the WLS to listen on an actual IP address for your development machine, create your WS DC using this real IP address, and then try to deploy/run the app.
    If you need to retrofit your app with an new IP address, please keep in mind there are several places you would need to manually fix up, including the connections.xml file.
    In general, if the device emulator's browser cannot hit a web service, then the ADF Mobile app will also not be able to hit a web service.
    The most reliable way is to treat the emulator like an actual device, then work out your application's connection accordingly.
    Thanks,
    Joe Huang

  • Webservice for soap with attachments

    HI
    I am try to develop webservice for soap with attachments for the sending images like jpg,tiff,gif.
    it works fine when I statically attach the file
    but when i pass dynamically the file name it will give me error for the call.invoke() method
    Following is the code and the error details
    I am using eclipse wtp2.0 and using weblogic appserver 8.1 and axis-1.4
    that is my configuration details.
    // This is my service code
    import java.io.File;
    import java.io.IOException;
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.MessagingException;
    import javax.xml.soap.AttachmentPart;
    import javax.xml.soap.MessageFactory;
    import javax.xml.soap.SOAPBody;
    import javax.xml.soap.SOAPBodyElement;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPPart;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPMessage;
    import org.apache.axis.Message;
    import org.apache.axis.MessageContext;
    import org.apache.axis.message.SOAPEnvelope;
    //import org.apache.axis.soap.MessageFactoryImpl;
    import com.sun.corba.se.spi.activation.Repository;
    public class AttachmentServer1
         SOAPMessage msg = null;
         Message response= null;
         FileDataSource fileSource;
         DataHandler dataHandler = null;
         MessageContext context = null;
              public void sendImage(String fileName) throws MessagingException, IOException{
              try {
                        //java.lang.System.setProperty("javax.xml.soap.MessageFactory","com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");
                        java.lang.System.setProperty("javax.xml.soap.MessageFactory","org.apache.axis.soap.MessageFactoryImpl");
                        MessageFactory fac = MessageFactory.newInstance();
                        msg = fac.createMessage();
                        context = MessageContext.getCurrentContext();
                        response = context.getRequestMessage();
                        if(msg != null){
                             System.out.println("From inside if statement");
                             //File f = new File("D:/1.png");
                             File f = new File(fileName);
                             fileSource = new FileDataSource(f);     
                             dataHandler =new DataHandler(fileSource);
                             System.out.println("From inside if statement 1");
                             AttachmentPart part = msg.createAttachmentPart(dataHandler);
                             System.out.println("From inside if statement part");
                             //part.setContentType("image/jpeg");
                             //part.setMimeHeader("Content-Type", "image/jpg");
                             //part.setContent(dataHandler, "image/jpg");
                             SOAPPart soapPart = msg.getSOAPPart();
                             javax.xml.soap.SOAPEnvelope envelope = soapPart.getEnvelope();
                             SOAPBody body = envelope.getBody();
                             SOAPBodyElement bodyElement = body.addBodyElement(envelope.createName("attach"));
                             SOAPElement element = bodyElement.addChildElement(envelope.createName("parent"));
                             System.out.println("From inside if statement 2");
                             part.setContentId("axis");
                             msg.addAttachmentPart(part);
                             element.addAttribute(envelope.createName("href"), part.getContentId());
                             System.out.println("From inside if statement 3");
                             msg.saveChanges();
                             System.out.println("From inside if statement 4");
                             System.out.println(part.getContentId());
                        }else
                             try {
                                  throw new Exception("Responce message is null");
                             } catch (Exception e) {
                                  // TODO Auto-generated catch block
                                  e.printStackTrace();
                   } catch (SOAPException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
    // This is the client code
    import java.io.File;
    import java.io.FileOutputStream;
    import java.util.Iterator;
    import javax.activation.DataHandler;
    import javax.xml.namespace.QName;
    import javax.xml.soap.AttachmentPart;
    import javax.xml.soap.SOAPBody;
    import javax.xml.soap.SOAPException;
    import org.apache.axis.Message;
    import org.apache.axis.MessageContext;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.message.SOAPEnvelope;
    public class AttachmentClient {
         public static void getImage(){
              try{
                   String endPoint = "http://localhost:7001/Test/services/AttchmentServer";
                   Service service = new Service();
                   Call call = (Call)service.createCall();
                   call.setOperationName(new QName("sendImage"));
                   call.setTargetEndpointAddress(endPoint);
                   call.setUseSOAPAction(true);
                   call.invoke(new Object[] {});
                   MessageContext context = call.getMessageContext();
                   Message msg = context.getCurrentMessage();
                   Iterator obj = msg.getAttachments();
                   while(obj.hasNext()){
                        try{
                             AttachmentPart part = (AttachmentPart) obj.next();
                             File graphFile = new File("test.jpg");
                             FileOutputStream outputStream = new FileOutputStream(graphFile);
                             DataHandler dataHandler = part.getDataHandler();
                             if(dataHandler != null){
                                  dataHandler.writeTo(outputStream);
                                  outputStream.flush();
                                  System.out.println("File Saved at:"+graphFile.getAbsolutePath());
                             }else{
                                  System.out.println("null");
                        }catch(Exception e){
                             e.printStackTrace();
              }catch(Exception e){
                   e.printStackTrace();
         public static void main(String args[]) throws SOAPException
              getImage();
    // The error is something like that
    - Exception:
    java.lang.RuntimeException: javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.
    faultActor:
    faultNode:
    faultDetail:
         {http://xml.apache.org/axis/}stackTrace:javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.
         at javax.mail.internet.InternetHeaders.load(InternetHeaders.java:122)
         at javax.mail.internet.InternetHeaders.<init>(InternetHeaders.java:93)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readTillFound(MultiPartRelatedInputStream.java:499)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readAll(MultiPartRelatedInputStream.java:433)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.getAttachments(MultiPartRelatedInputStream.java:439)
         at org.apache.axis.attachments.AttachmentsImpl.mergeinAttachments(AttachmentsImpl.java:171)
         at org.apache.axis.attachments.AttachmentsImpl.getAttachmentByReference(AttachmentsImpl.java:341)
         at org.apache.axis.encoding.DeserializationContext.getObjectByRef(DeserializationContext.java:617)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.populateDataHandler(JAFDataHandlerDeserializer.java:74)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.startElement(JAFDataHandlerDeserializer.java:59)
         at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
         at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
         at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
         at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
         at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
         at org.apache.axis.client.Call.invoke(Call.java:2467)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at AttachmentClient2.getImage(AttachmentClient2.java:27)
         at AttachmentClient2.main(AttachmentClient2.java:58)
         {http://xml.apache.org/axis/}hostname:solusoft18
    javax.mail.MessagingException: Error in input stream;
    nested exception is:
         java.io.IOException: End of stream encountered before final boundary marker.
         at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readTillFound(MultiPartRelatedInputStream.java:609)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.readAll(MultiPartRelatedInputStream.java:433)
         at org.apache.axis.attachments.MultiPartRelatedInputStream.getAttachments(MultiPartRelatedInputStream.java:439)
         at org.apache.axis.attachments.AttachmentsImpl.mergeinAttachments(AttachmentsImpl.java:171)
         at org.apache.axis.attachments.AttachmentsImpl.getAttachmentByReference(AttachmentsImpl.java:341)
         at org.apache.axis.encoding.DeserializationContext.getObjectByRef(DeserializationContext.java:617)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.populateDataHandler(JAFDataHandlerDeserializer.java:74)
         at org.apache.axis.encoding.ser.JAFDataHandlerDeserializer.startElement(JAFDataHandlerDeserializer.java:59)
         at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
         at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
         at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
         at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
         at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
         at org.apache.axis.client.Call.invoke(Call.java:2467)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at AttachmentClient2.getImage(AttachmentClient2.java:27)
         at AttachmentClient2.main(AttachmentClient2.java:58)
    Caused by: javax.mail.MessagingException: Error in input stream;

    Hi David,
    The "covert byte[] to a base64 encoded string" solution, is probably your best
    bet given the scenario you described.
    Regards,
    Mike Wooten
    "David Ruana" <[email protected]> wrote:
    >
    Weblogic 6.1 (SP2) does not support SOAP with attachments. In the meanwhile,
    what
    is the best approach in order to send a SOAP message which has binary
    data?
    My EJB is currently receiving a byte[] and returning also a byte[]. The
    only solution
    I can think of right now is to convert the byte[] into a String in base64
    format.
    Would you recommend that?
    Thanks in advance.

  • Implementing a Webservice with AXIS, which calls CORBA objects

    Hi @all!
    First my aim is it to invoke a Webservice by a Client. As toolkit for developing this Webservice I use AXIS 1.0. This Webservice in turn should establish a CORBA connection to a third application.
    A direct access to the CORBA objects without the AXIS Webservice works fine. The Webservice without the Corba access is also running errorfree.
    When trying to implement a Webservice with AXIS, which calls CORBA objects following fault was generated:
    "internal Server Error(500)".
    Are there known problems with AXIS in conjunction with CORBA?

    Okay here's the error log file:
    1000 of lines, which aren't very helpful for me.
    As ORB I use JacORB.
    AxisFault
    faultCode: {http://xml.apache.org/axis/}HTTP
    faultString: (500)Internal Server Error
    faultActor: null
    faultDetail:
         null: return code: 500
    <html><head><title>Apache Tomcat/4.1.18 - Error report</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} H3{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException: Servlet execution threw an exception
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
         at java.lang.Thread.run(Thread.java:484)
    </pre></p><p><b>root cause</b> <pre>java.lang.NoClassDefFoundError: org/omg/PortableServer/POAOperations
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:195)
         at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:187)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:171)
         at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:154)
         at org.apache.axis.utils.cache.ClassCache.lookup(ClassCache.java:122)
         at org.apache.axis.providers.java.JavaProvider.getServiceClass(JavaProvider.java:502)
         at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:535)
         at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:322)
         at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:477)
         at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:312)
         at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:298)
         at org.apache.axis.deployment.wsdd.WSDDDeployment.getServiceByNamespaceURI(WSDDDeployment.java:503)
         at org.apache.axis.configuration.FileProvider.getServiceByNamespaceURI(FileProvider.java:273)
         at org.apache.axis.MessageContext.getPossibleOperationsByQName(MessageContext.java:226)
         at org.apache.axis.message.BodyBuilder.onStartChild(BodyBuilder.java:150)
         at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893)
         at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:459)
         at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:221)
         at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNamespaceBinder.java:874)
         at org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBinder.java:591)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:747)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1477)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
         at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
         at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
         at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:394)
         at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:232)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:546)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:377)
         at org.apache.axis.server.AxisServer.invoke(AxisServer.java:304)
         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
         at java.lang.Thread.run(Thread.java:484)
    </pre></p><HR size="1" noshade><h3>Apache Tomcat/4.1.18</h3></body></html>
    (500)Internal Server Error
         at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:630)
         at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:131)
         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.client.AxisClient.invoke(AxisClient.java:182)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2113)
         at org.apache.axis.client.Call.invoke(Call.java:2102)
         at org.apache.axis.client.Call.invoke(Call.java:1851)
         at org.apache.axis.client.Call.invoke(Call.java:1777)
         at org.apache.axis.client.Call.invoke(Call.java:1315)
         at CsbClient.main(CsbClient.java:82)
    [INFO] enterprise - -Mapping Exception to AxisFault <(500)Internal Server Error>
    (WSDDDeployableItem.java:312)
         at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:298)
         at org.apache.axis.deployment.wsdd.WSDDDeployment.getServiceByNamespaceURI(WSDDDeployment.java:503)
         at org.apache.axis.configuration.FileProvider.getServiceByNamespaceURI(FileProvider.java:273)
         at org.apache.axis.MessageContext.getPossibleOperationsByQName(MessageContext.java:226)
         at org.apache.axis.message.BodyBuilder.onStartChild(BodyBuilder.java:150)
         at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893)
         at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:459)
         at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:221)
         at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNamespaceBinder.java:874)
         at org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBinder.java:591)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:747)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1477)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
         at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
         at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
         at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:394)
         at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:232)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:546)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:377)
         at org.apache.axis.server.AxisServer.invoke(AxisServer.java:304)
         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
         at java.lang.Thread.run(Thread.java:484)
    </pre></p><HR size="1" noshade><h3>Apache Tomcat/4.1.18</h3></body></html>
    (500)Internal Server Error
         at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:630)
         at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:131)
         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.client.AxisClient.invoke(AxisClient.java:182)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2113)
         at org.apache.axis.client.Call.invoke(Call.java:2102)
         at org.apache.axis.client.Call.invoke(Call.java:1851)
         at org.apache.axis.client.Call.invoke(Call.java:1777)
         at org.apache.axis.client.Call.invoke(Call.java:1315)
         at CsbClient.main(CsbClient.java:82)
    Exception in thread "main"

  • For everyone facing unexpected the JBO-25014 error using (ADF) BC

    Hi,
    I think I might have a hint for everyone facing JBO-25014 (Another user has changed the row with primary key oracle.jbo.Key) errors during updates.
    I noticed that during updates, we got unexpected behavior: we have a table with an update row trigger defined on it, where we set values for some columns. During updates via ADF BC (we work with JDev 10.1.3 SU3 and JHeadstart 10.1.3 build 78 against Oracle 8.1.7.4, 9.2.0.7 and 10.2.0.1) we noticed that the value of one of the fields updated via triggers was emptied, although the update could in no way hit the logic for this field. So I reproduced the behavior in the Application Module Tester and also reproduced it in SQL*Plus using a PL/SQL procedure: the problem occurs because of Oracle's RETURNING statement, which is used in ADF BC for fields that need refresh after insert of update. We seem to hit bug 4515623: "Update...RETURNING with a trigger can produce corrupt column data".
    This should be solved in RDBMS 9.2.0.8 (not there yet) and 10.2.0.2 (already released). I still have to test whether 10.2.0.2 does solve our problem, but I thought I would let you know in advance. Maybe someone can test before I can (I have to set up a 10G DB first, since I work with 9.2.0.7),
    Toine van Beckhoven

    Here is additional info on this behavior. I was able to install a 10G DB (10.2.0.1) where I could reproduce the problem. After that I installed patch 10.2.0.2 and tried out it the bug was solved. However: the bug is solved, but not correctly, a new bug is introduced which is still a major problem when you use ADF BC on top of tables with Before Update triggers (but as you can see below, with update triggers containing conditional logic!). So this is really a database problem, but with impact on applications using the refresh after update property in ADF BC! The new bug is known as bug 5115882.
    Here is the script I used to pinpoint the problem (I highlighted the things that really show the problem):
    DROP TABLE test_ts;
    CREATE TABLE test_ts (test_ts_id INTEGER PRIMARY KEY,
    status SMALLINT NOT NULL, someotherfield VARCHAR2(1), edittime DATE);
    CREATE OR REPLACE TRIGGER test_ts_time
    BEFORE UPDATE
    ON test_ts
    REFERENCING OLD AS OLD NEW AS NEW
    FOR EACH ROW
    BEGIN
    -- always update edittime
    :NEW.edittime := SYSDATE;
    -- only update someotherfield conditionally (when status=1)
    IF :NEW.status = 1
    THEN
    :NEW.someotherfield := 'Y';
    END IF;
    END;
    PROMPT Create one row, with status 1 and someotherfield initially 'N'
    INSERT INTO test_ts
    (test_ts_id, status, someotherfield, edittime
    VALUES (1, 1, 'N', SYSDATE
    SELECT test_ts_id, status, someotherfield,
    TO_CHAR (edittime, 'dd-mm-yyyy hh24:mi:ss') edittime
    FROM test_ts;
    SET serverout on
    PROMPT Update the row, with status 2 --> trigger logic will not fire
    DECLARE
    l_someotherfield test_ts.someotherfield%TYPE;
    l_edittime test_ts.edittime%TYPE;
    BEGIN
    FOR i IN 1 .. 100000000
    LOOP
    NULL;
    END LOOP;
    UPDATE test_ts
    SET status = 2
    WHERE test_ts_id = 1
    RETURNING someotherfield, edittime
    INTO l_someotherfield, l_edittime;
    DBMS_OUTPUT.put_line
    ( 'Returned SomeOtherField (should be ''N'' but is empty in 10.2.0.1): '
    || l_someotherfield
    DBMS_OUTPUT.put_line
    ( 'Returned EditTime (should be greater than selected one before): '
    || TO_CHAR (l_edittime, 'dd-mm-yyyy hh24:mi:ss')
    DBMS_OUTPUT.put_line ('-');
    END;
    PROMPT However: someotherfield is really 'N' so why is it returning NULL --> bug
    SELECT test_ts_id, status, someotherfield,
    TO_CHAR (edittime, 'dd-mm-yyyy hh24:mi:ss') edittime
    FROM test_ts;
    PROMPT Update the row, with status 1 --> trigger logic will fire
    DECLARE
    l_someotherfield test_ts.someotherfield%TYPE;
    l_edittime test_ts.edittime%TYPE;
    BEGIN
    FOR i IN 1 .. 100000000
    LOOP
    NULL;
    END LOOP;
    UPDATE test_ts
    SET status = 1
    WHERE test_ts_id = 1
    RETURNING someotherfield, edittime
    INTO l_someotherfield, l_edittime;
    DBMS_OUTPUT.put_line
    ( 'Returned SomeOtherField (should be ''Y'' and is ''Y'' also in 10.2.0.1): '
    || l_someotherfield
    ); DBMS_OUTPUT.put_line
    ( 'Returned EditTime (should be greater than selected one before): '
    || TO_CHAR (l_edittime, 'dd-mm-yyyy hh24:mi:ss')
    DBMS_OUTPUT.put_line ('-');
    END;
    PROMPT And see: someotherfield is indeed 'Y' so expected behavior
    SELECT test_ts_id, status, someotherfield,
    TO_CHAR (edittime, 'dd-mm-yyyy hh24:mi:ss') edittime
    FROM test_ts;
    Output on 10.2.0.1:
    Table dropped.
    Table created.
    Trigger created.
    Create one row, with status 1 and someotherfield initially 'N'
    1 row created.
    TEST_TS_ID STATUS S EDITTIME
    1 1 N 16-07-2006 15:11:35
    1 row selected.
    Update the row, with status 2 --> trigger logic will not fire
    Returned SomeOtherField (should be 'N' but is empty in 10.2.0.1): --> bug
    Returned EditTime (should be greater than selected one before): 16-07-2006 15:11:37
    PL/SQL procedure successfully completed.
    However: someotherfield is really 'N' so why is it returning NULL --> bug
    TEST_TS_ID STATUS S EDITTIME
    1 2 N 16-07-2006 15:11:37
    1 row selected.
    Update the row, with status 1 --> trigger logic will fire
    Returned SomeOtherField (should be 'Y' and is 'Y' also in 10.2.0.1): Y
    Returned EditTime (should be greater than selected one before): 16-07-2006 15:11:40
    PL/SQL procedure successfully completed.
    And see: someotherfield is indeed 'Y' so expected behavior
    TEST_TS_ID STATUS S EDITTIME
    1 1 Y 16-07-2006 15:11:40
    1 row selected.
    Output on 10.2.0.2:
    Table dropped.
    Table created.
    Trigger created.
    Create one row, with status 1 and someotherfield initially 'N'
    1 row created.
    TEST_TS_ID STATUS S EDITTIME
    1 1 N 16-07-2006 23:47:51
    1 row selected.
    Update the row, with status 2 --> trigger logic will not fire
    Returned SomeOtherField (should be 'N' and is indeed 'N' in 10.2.0.2): N --> ALLRIGHT, this correct, but look further...
    Returned EditTime (should be greater than selected one before): 16-07-2006 23:47:51
    PL/SQL procedure successfully completed.
    TEST_TS_ID STATUS S EDITTIME
    1 2 N 16-07-2006 23:47:54
    1 row selected.
    Update the row, with status 1 --> trigger logic will fire
    Returned SomeOtherField (should be 'Y' ...but is the old value 'N' in 10.2.0.2): N --> so a new bug has been introduced so a problem still remains!
    Returned EditTime (should be greater than selected one before): 16-07-2006 23:47:54
    PL/SQL procedure successfully completed.
    And see: someotherfield is indeed 'Y' so the Returned value is now not correct, like it was in 10.2.0.1
    TEST_TS_ID STATUS S EDITTIME
    1 1 Y 16-07-2006 23:47:56
    1 row selected.
    I am affraid we need to look at workarounds, because we rely heavily on before update triggers in the DB with conditional logic. I do not really want to change my triggers (for example removing conditional logic...). And it seems that waiting for the Oracle RDBMS to really solve this problem is not viable either (I saw notes that it will be solved in 11G, not in 10 or 9!).
    Anyone from the ADF development team that recognizes this problem and is able to verify that this really is a RDBMS problem? The testcases above run on every DB version as a regular user (for example SCOTT) with some create privileges),
    Toine

  • Defining bc4j.xcfg for Webservice from ADF Application Module

    Hi all,
    I've already posted my previous question in JBO30003 while executing ADF Application Module WebService
    but no replies at all :)
    after thorough inspection, i found that why my client can connect to ADF AM and why my WebService Invocation is failed with JBO 300003. My J2EE Client application is connected to ADF AppModule with some configuration in CPX file.
    <JboProject
       id="DataBindings"
       xmlns="http://xmlns.oracle.com/adfm/application"
       version="10.1.2.18.73"
       SeparateXMLFiles="false"
       Package=""
       ClientType="JClient" >
       <Contents >
          <DataControl
             id="AppModuleDataControl"
             SubType="DCBC4J"
             SupportsFindMode="true"
             SupportsTransactions="true"
             Package="package"
             FactoryClass="FactoryImpl"
             Configuration="AppModuleEmbeddedAS" >
             <Parameters >
                <Parameter
                   name="Sync"
                   value="Immediate" >
                </Parameter>
             </Parameters>
          </DataControl>
    and so forththis CPX file define that this client connect to Application Module on my AppServer with "AppModuleEmbeddedAS" configuration, as stated in my BC4J.XCFG.
    <AppModuleConfig name="AppModuleEmbeddedAS">
             <AppModuleJndiName>AppModuleBean</AppModuleJndiName>
             <java.naming.security.credentials>welcome</java.naming.security.credentials>
             <DeployPlatform>EjbIas</DeployPlatform>
             <java.naming.security.principal>admin</java.naming.security.principal>
             <jbo.internal.embedded>true</jbo.internal.embedded>
             <HostName>localhost</HostName>
             <jbo.ampool.dynamicjdbccredentials>false</jbo.ampool.dynamicjdbccredentials>
             <ApplicationName>AppModule</ApplicationName>
             <jbo.ampool.doampooling>false</jbo.ampool.doampooling>
             <java.naming.security.authentication>simple</java.naming.security.authentication>
             <java.naming.factory.initial>oracle.jbo.common.JboInitialContextFactory</java.naming.factory.initial>
             <ConnectionPort>23891</ConnectionPort>
             <JDBCDataSource>jdbc/DBGEBPOC_on_LOCALHOSTDS</JDBCDataSource>
             <java.naming.provider.url>ormi://localhost:23791/current-workspace-app</java.naming.provider.url>
             <jbo.server.internal_connection>jdbc/DBGEBPOC_on_LOCALHOSTCoreDS</jbo.server.internal_connection>
             <jbo.dofailover>false</jbo.dofailover>
             <ApplicationPath>current-workspace-app</ApplicationPath>
             <jbo.ampool.resetnontransactionalstate>false</jbo.ampool.resetnontransactionalstate>
          </AppModuleConfig>Now, how could I define configuration like my J2EE Client in my web service? as we know that web service's client is web browser. Does it mean that we can't define any CPX file?
    FYI, My webservice's End Point pages is successly shown up. but when i invoke the method, it returns XML with faultmessage Error JBO30003.

    Hi,
    You can directly edit the bc4j.xcfg file. Note that the WebService binding is not created from the Am directly but from the deployed WSDL file.
    Frank

  • The application maps is not working. When I try to run it opens for a few seconds with a blank screen and then closes

    The application maps is not working. When I try to run it opens for a few seconds with a blank screen and then closes.

    Try a reset by pressing the home and sleep buttons until you see the Apple logo, ignoring the slider. Takes about 5-15 secs of button holding and you won't lose any data or settings.

  • Creating a template in Pages is straight-forward as answered here previously. Is there and equivalent for iBooks Author which can start with a blank page and build up the template as required? or can one only adapt a ready made template?

    Creating a template in Pages is straight-forward as answered here previously. Is there an equivalent for iBooks Author which can start with a blank page and build up the template as required? or can one only adapt a ready made template? This has proved unsatisfactory to me so far. Lines are left in etc.

    There are two basic menus for fonts - one from the main menu bar and one from the toolbar. You can also bring up the font manage dialog.
    I don't recommend trying to hard to force an otherwise foreign font, as it inevitably needs to be usable/supported on iOS as well, and that can get tricky w/3rd party fonts, as an example, even with the expanded font support in the latest iBA.
    If you need to discuss fonts more, I suggest starting a new thread....preferably with a slightly more brief title, thanks.

  • WSS payload encryption with pi 7.1 for webservice.

    Hi Gurus,
    I want to implement Wss in PI 7.1 for publishing webservice with user name token.
    just payload encryption is needed.... i need some help how to do that...
    If someone have a guide or something similer.. I will be grateful.
    tanks..
    love u all...

    Sharon,
    1) Set up HTTPS
    2) Are you calling the Encryption service out of SAP PI box, If so use SOAP - HTTPS call to get encrypted.
    The below threads & link will give an idea
    http://help.sap.com/saphelp_nw04s/helpdata/en/14/ef2940cbf2195de10000000a1550b0/frameset.htm
    HTTPS configuration for SOAP adapter
    Sender SOAP Adapter with HTTPs call
    HTTPS post using SOAP
    Cheers
    Agasthuri

Maybe you are looking for

  • I mirror my iphone 4s to my Apple TV and can't use my headphones straight to the iphone 4s. Is there a way to avoid running a really long cable to the tv jack?

    I think apple may have overlooked that alot of people watch tv with headphones on, it would have been really good to mirror the iphone 4s and use the headphone jack on the iphone 4s to run the headphones. I'm the kind of person who walks about when w

  • Variable conversion in BEx Web 3.5 after EHP1 Update

    Hello experts, we have a problem after updating to ehp1 with a 3.5 web query. When we enter in the variable screen for the characteristic variable of fiscal year "0032010" then the bi clears that field. Without ehp1 the system replaces "00332010" wit

  • How do i set this up correctly

    one of my daughters has an iMac with cable modem. she needs to be able to use her office thinkpad (intel wireless card) at home. when she has visited me, i had to turn off security on my aiport (snow) base station for her to connect. i plan to get he

  • Standard 'X' in a modal dialog box not working

    Hi, I have created a module pool and calling screen from main screen using Call screen.... Starting... ending... statement. It is a modal dialog box screen. As a standard a [X] appears on top right corner. But when I click it doesn't work. it does no

  • Answers on a postcard!!

    Hi All, I'm at my wits end with this one and I'm hoping somebody can help. Whenever I've used Robohelp in the past I've written documents from scratch, but now I find myself in import territory and nothing seems to work the way I would like. A collea