Spatial functionality in a Java client?

Background:
We've been a big supporter and user of Oracle Spatial with our CVC application since 2005. The enterprise model we adopted and have been using consists of a Java Web-Start desktop client editor application, Java middle tier application (basically a data marshaller), and Oracle Enterprise with Spatial on the back end. Most of the spatial processing, consisting of object creation and editing occurs on the back-end in PL/SQL packages calling various spatial functions and operators, and returning new or revised shapes and other data to the client for caching and display.
This model has worked quite well for the 300 or so sites that concurrently edit against a single enterprise-wide dataset. But - the network is degrading. Our working premise when we set out in 2005 was the network would increase in bandwidth and decrease in latency and errors. The opposite is true. We were also mislead in that WiFi (or then WiMax) would be greatly supported for out-of-office but still connected to the network usage. This also has not happened. So we need to re-think the architecture to be more client-centric.
The future:
What I need to be able to do is move most of the spatial processing and business logic out of the back-end database, and into the JWS client. BUT - that presents a real problem. So far, I have been unable to locate good commercial or FOSS java spatial libraries that come close to replicating what we now use with Oracle spatial - such as:
Basic spatial logic functions (covers, inside, etc) - generally met by most libraries
Geographic dataset storage with indexes that can cross boundaries (EPSG:4326 for us) - none I know of, although JASPA might do this in the near future with H2.
Geodetic calculations for distance - none I know of
LRS type functions for pt at bearing, distance along a line, pt on a line - none I know of
ORACLE CORP - Listen Up:
What I'd like to have are the Java spatial functions currently embedded in the enterprise db - licensed as a deployable set of jars with a Java-based database that a client can utilize locally or even "offline". Essentially a new product with a lot of shared (already developed) code. Perhaps combine this with Berkeley DB Java Edition. Seems like an easy win/win for Oracle and users to me.
However... with all the crazy "cloud is it" mentality lately, I'm not sure that will fly. Somehow, I think we will end up rolling our own, possibly extending the JASPA libraries to do all these extra functions on H2. Should work, but much more work that should be required.
Thoughts? Suggestions?
Thanks... Bryan

Which piece of code is throwing error phaos or jsse ?

Similar Messages

  • ORA-01804 when calling function from java client

    Hi All,
    we changed a PL/SQL-function that is called from a java client from using sysdate to localtimestamp. The function works fine in TOAD, but when called from the java client ist throws an ora-01804: failure to initialize timezone information.
    Any suggestions?
    Alexander

    The change was only made to a local variable in a function that was called from the original function that got the parameters from the java client.
    I changed it from localtimestamp to systimestamp and it works fine.
    Do i have to make any settings about the time zone in the jdbc thin client ?

  • Java client application + SAP Logon Tickets (SSO)

    Java client application + SAP Logon Tickets (SSO)
    Hello
    I have the following question, it is about connection between SAP Enterprise Portal and Java Application.
    After registration in Enterprise Portal (with Internet Explorer Browser) request is passed on to SAP backend system - cFolders (SSO methode)
    With internet browser functioned everything.
    How can one get, however, this Logon tickets with Java application and then be of use later for SOAP connection
    (everything with client java application)
    Thanks for quick help
    Edo

    Hi Edo,
    look at this https://media.sdn.sap.com/javadocs/NW04/SPS15/um/com/sap/security/api/ticket/TicketVerifier.html
    Best Regards
    Oliver

  • Error while accessing seesion bean from java client, is the lookup ok?

    I got the following error..
    Exception in thread "main" java.lang.VerifyError: (class: com/sun/enterprise/iio
    p/POAEJBORB, method: addCSIv2Component signature: (Lcom/sun/corba/ee/internal/co
    re/IOR;[B)Lcom/sun/corba/ee/internal/core/IOR;) Incompatible object argument for
    function call
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:199)
            at org.omg.CORBA.ORB.create_impl(ORB.java:303)
            at org.omg.CORBA.ORB.init(ORB.java:352)
            at com.sun.enterprise.util.ORBManager.createORB(ORBManager.java:140)
            at com.sun.enterprise.util.ORBManager.init(ORBManager.java:69)
            at com.sun.enterprise.naming.java.javaURLContextFactory.getObjectInstanc
    e(javaURLContextFactory.java:27)
            at javax.naming.spi.NamingManager.getURLObject(NamingManager.java:594)
            at javax.naming.spi.NamingManager.getURLContext(NamingManager.java:543)
            at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.jav
    a:282)
            at javax.naming.InitialContext.lookup(InitialContext.java:357)
            at samples.helloworld.ejb.Client.main(Client.java:32)
    the program is:
    env.put("java.naming.factory.initial",
                       "com.sun.jndi.cosnaming.CNCtxFactory");
               env.put("java.naming.provider.url", "iiop://" + host + ":"+port);
               System.out.println("after setting properties.");
               Context initial = new InitialContext(env);
               System.out.println("before setting initial context.");
               Object objref = initial.lookup("GreeterEJB");
               System.out.println("after lookup.");
    //END OF ADDITIONS FOR IAS
               //Context initial = new InitialContext();
               //Object objref = initial.lookup("GreeterEJB");
               System.out.println("before home");
               GreeterHome home = (GreeterHome)PortableRemoteObject.narrow(objref,
                                                GreeterHome.class);
               System.out.println("before create");
               Greeter remote = home.create();
               String msg = remote.getGreeting();                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Hi,
    This error usually shoots up due to the incompatibility with the dependecies. Can you please summarise how you went on compiling the application. Meanwhile, I'm trying to simulate same scenario with the GreeterEJB and the Converter examples.
    Regards
    Raj

  • Error while generating java client code from wsdl file

    I am trying to generate a java client code from WSDL file um_workflowSaveCreateProfile.wsdl which includes um_workflowSaveCreateProfile_interface.wsdl file, so I am keeping both the files in the same folder and trying to generate the client code but it is showing me the below error highlighted .
    um_workflowSaveCreateProfile.wsdl
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xsd="E:/DIPPWF/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:oblix="http://www.oblix.com/" xmlns:obinterface="http://www.oblix.com/wsdl/um_workflowSaveCreateProfile_interface" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.oblix.com/wsdl/um_workflowSaveCreateProfile" targetNamespace="http://www.oblix.com/wsdl/um_workflowSaveCreateProfile">
         <import namespace="D:/DIPP/WSDL/um_workflowSaveCreateProfile_interface" location="um_workflowSaveCreateProfile_interface.wsdl"/>
         <service name="OblixIDXML_um_workflowSaveCreateProfile_Service">
              <port name="OblixIDXML_um_workflowSaveCreateProfile_Port" binding="obinterface:OblixIDXML_um_workflowSaveCreateProfile_Binding">
                   <soap:address location="http://localhost:7777/identity/oblix/apps/userservcenter/bin/userservcenter.cgi"/>
              </port>
         </service>
    </definitions>
    um_workflowSaveCreateProfile_interface.wsdl
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:oblix="http://www.oblix.com/" xmlns:oblixxmllocalschema="http://www.oblix.com/OblixXMLLocalSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.oblix.com/wsdl/um_workflowSaveCreateProfile_interface" targetNamespace="http://www.oblix.com/wsdl/um_workflowSaveCreateProfile_interface">
         <types>
              <xsd:schema targetNamespace="http://www.oblix.com/" elementFormDefault="qualified"
                   xmlns="http://www.oblix.com/"
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                        <xsd:include schemaLocation="../XMLSchema/common_parameters.xsd" />
                        <xsd:include schemaLocation="../XMLSchema/common_authentication.xsd" />
                        <xsd:include schemaLocation="../XMLSchema/workflowSaveCreateProfile.xsd" />
              </xsd:schema>
              <xsd:schema targetNamespace="http://www.oblix.com/OblixXMLLocalSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                   <xsd:element name="request">
                        <xsd:complexType>
                             <xsd:sequence>
                                  <xsd:element name="params">
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element ref="oblix:ObWorkflowName"/>
                                                 <xsd:element ref="oblix:ObDomainName"/>
                                                 <xsd:element ref="oblix:ObWfComment" minOccurs="0"/>
                                                 <xsd:element ref="oblix:noOfFields"/>
                                                 <xsd:element ref="oblix:AttributeParams"/>
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:sequence>
                             <xsd:attribute name="version" type="xsd:string" use="optional"/>
                             <xsd:attribute name="application" type="xsd:string" use="required" />
                             <xsd:attribute name="function" type="xsd:string" use="required" />
                             <xsd:attribute name="mode" type="xsd:string" use="optional"/>
                        </xsd:complexType>
                   </xsd:element>
              </xsd:schema>
         </types>
         <message name="OblixIDXMLInput">
              <part name="authentication" element="oblix:authentication"/>
              <part name="request" element="oblixxmllocalschema:request"/>
         </message>
         <message name="OblixIDXMLOutput">
              <part name="body" element="oblix:Oblix"/>
         </message>
         <portType name="OblixIDXMLPortType">
              <operation name="OblixIDXML_um_workflowSaveCreateProfile">
                   <input message="tns:OblixIDXMLInput"/>
                   <output message="tns:OblixIDXMLOutput"/>
              </operation>
         </portType>
         <binding name="OblixIDXML_um_workflowSaveCreateProfile_Binding" type="tns:OblixIDXMLPortType">
              <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
              <operation name="OblixIDXML_um_workflowSaveCreateProfile">
                   <soap:operation soapAction="http://www.oblix.com/"/>
                   <input>
                        <soap:body use="literal"/>
                   </input>
                   <output>
                        <soap:body use="literal"/>
                   </output>
              </operation>
         </binding>
    </definitions>
    I am using WSDL2 Java for generating the client code .
    Please suggest where am I wrong .
    E:\axis2-1.4\bin>WSDL2Java -uri E:\DIPPWF\um_workflowSaveCreateProfile.wsdl -p R
    ND -d adb -s -o build\client--http-proxy-host 10.74.93.35 --http-proxy-port 80
    Using AXIS2_HOME: E:\axis2-1.4
    Using JAVA_HOME: C:\Program Files\Java\jdk1.6.0_02
    Retrieving document at 'E:\DIPPWF\um_workflowSaveCreateProfile.wsdl'.
    Retrieving document at 'um_workflowSaveCreateProfile_interface.wsdl', relative t
    o 'file:/E:/DIPPWF/um_workflowSaveCreateProfile.wsdl'.
    Retrieving schema at 'E:/DIPPWF/XMLSchema/common_parameters.xsd', relative to 'f
    ile:/E:/DIPPWF/um_workflowSaveCreateProfile_interface.wsdl'.
    Retrieving schema at 'E:/DIPPWF/XMLSchema/common_authentication.xsd', relative t
    o 'file:/E:/DIPPWF/um_workflowSaveCreateProfile_interface.wsdl'.
    Retrieving schema at 'E:/DIPPWF/XMLSchema/workflowSaveCreateProfile.xsd', relati
    ve to 'file:/E:/DIPPWF/um_workflowSaveCreateProfile_interface.wsdl'.
    Retrieving schema at 'navbar.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/workfl
    owSaveCreateProfile.xsd'.
    Retrieving schema at 'searchform.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/wo
    rkflowSaveCreateProfile.xsd'.
    Retrieving schema at 'component_basic.xsd', relative to 'file:/E:/DIPPWF/XMLSche
    ma/workflowSaveCreateProfile.xsd'.
    Retrieving schema at 'displaytype.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/c
    omponent_basic.xsd'.
    Retrieving schema at 'error.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/compone
    nt_basic.xsd'.
    Retrieving schema at 'component_workflowTicket.xsd', relative to 'file:/E:/DIPPW
    F/XMLSchema/workflowSaveCreateProfile.xsd'.
    Retrieving document at 'E:\DIPPWF\um_workflowSaveCreateProfile.wsdl'.
    Retrieving document at 'um_workflowSaveCreateProfile_interface.wsdl', relative t
    o 'file:/E:/DIPPWF/um_workflowSaveCreateProfile.wsdl'.
    Retrieving schema at 'E:/DIPPWF/XMLSchema/common_parameters.xsd', relative to 'f
    ile:/E:/DIPPWF/um_workflowSaveCreateProfile_interface.wsdl'.
    Retrieving schema at 'E:/DIPPWF/XMLSchema/common_authentication.xsd', relative t
    o 'file:/E:/DIPPWF/um_workflowSaveCreateProfile_interface.wsdl'.
    Retrieving schema at 'E:/DIPPWF/XMLSchema/workflowSaveCreateProfile.xsd', relati
    ve to 'file:/E:/DIPPWF/um_workflowSaveCreateProfile_interface.wsdl'.
    Retrieving schema at 'navbar.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/workfl
    owSaveCreateProfile.xsd'.
    Retrieving schema at 'searchform.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/wo
    rkflowSaveCreateProfile.xsd'.
    Retrieving schema at 'component_basic.xsd', relative to 'file:/E:/DIPPWF/XMLSche
    ma/workflowSaveCreateProfile.xsd'.
    Retrieving schema at 'displaytype.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/c
    omponent_basic.xsd'.
    Retrieving schema at 'error.xsd', relative to 'file:/E:/DIPPWF/XMLSchema/compone
    nt_basic.xsd'.
    Retrieving schema at 'component_workflowTicket.xsd', relative to 'file:/E:/DIPPW
    F/XMLSchema/workflowSaveCreateProfile.xsd'.
    *[ERROR] More than one part for message OblixIDXMLInput*
    org.apache.axis2.description.WSDL11ToAxisServiceBuilder$WSDLProcessingException:
    More than one part for message OblixIDXMLInput
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addQNameRefer
    ence(WSDL11ToAxisServiceBuilder.java:1162)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addQNameRefer
    ence(WSDL11ToAxisServiceBuilder.java:1085)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateBindi
    ng(WSDL11ToAxisServiceBuilder.java:686)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpo
    int(WSDL11ToAxisServiceBuilder.java:538)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpo
    ints(WSDL11ToAxisServiceBuilder.java:489)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateServi
    ce(WSDL11ToAxisServiceBuilder.java:363)
    at org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateA
    llServices(WSDL11ToAllAxisServicesBuilder.java:107)
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat
    ionEngine.java:147)
    at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
    at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
    Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException
    : Error parsing WSDL
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat
    ionEngine.java:153)
    at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
    at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
    Caused by: org.apache.axis2.AxisFault: More than one part for message OblixIDXML
    Input
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateServi
    ce(WSDL11ToAxisServiceBuilder.java:397)
    at org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateA
    llServices(WSDL11ToAllAxisServicesBuilder.java:107)
    at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat
    ionEngine.java:147)
    ... 2 more
    Caused by: org.apache.axis2.description.WSDL11ToAxisServiceBuilder$WSDLProcessin
    gException: More than one part for message OblixIDXMLInput
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addQNameRefer
    ence(WSDL11ToAxisServiceBuilder.java:1162)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addQNameRefer
    ence(WSDL11ToAxisServiceBuilder.java:1085)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateBindi
    ng(WSDL11ToAxisServiceBuilder.java:686)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpo
    int(WSDL11ToAxisServiceBuilder.java:538)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpo
    ints(WSDL11ToAxisServiceBuilder.java:489)
    at org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateServi
    ce(WSDL11ToAxisServiceBuilder.java:363).
    Thanks in advance.
    akshay

    Hello,
    Were you able to resolve this issue ?
    I am seeing the same issue and at my wits end.
    regards
    Amit

  • How to insert message in OC4J JMS from standalone java client.

    Hi,
    I have been following available examples for creating standalone java clients to insert messages in JMS queues.
    I am able to insert using java client when the SOA suite and the standalone java code are on same machine.
    package producerconsumerinjava;
    import javax.jms.*;
    import javax.naming.*;
    import java.util.Hashtable;
    public class QueueProducer
    public static void main(String[] args)
    String queueName = "jms/demoQueue";
    String queueConnectionFactoryName = "jms/QueueConnectionFactory";
    Context jndiContext = null;
    QueueConnectionFactory queueConnectionFactory = null;
    QueueConnection queueConnection = null;
    QueueSession queueSession = null;
    Queue queue = null;
    QueueSender queueSender = null;
    TextMessage message = null;
    int noMessages = 5;
    * Set the environment for a connection to the OC4J instance
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.rmi.RMIInitialContextFactory");
    env.put(Context.SECURITY_PRINCIPAL, "oc4jadmin");
    env.put(Context.SECURITY_CREDENTIALS, "mypass");
    env.put(Context.PROVIDER_URL,"ormi://myserver.company.com:12402"); //12402 is the rmi port
    * Set the Context Object.
    * Lookup the Queue Connection Factory.
    * Lookup the JMS Destination.
    try
    jndiContext = new InitialContext(env);
    queueConnectionFactory =
    (QueueConnectionFactory) jndiContext.lookup(queueConnectionFactoryName);
    queue = (Queue) jndiContext.lookup(queueName);
    catch (NamingException e)
    System.out.println("JNDI lookup failed: " + e.toString());
    System.exit(1);
    * Create connection.
    * Create session from connection.
    * Create sender.
    * Create text message.
    * Send messages.
    * Send non text message to end text messages.
    * Close connection.
    try
    queueConnection = queueConnectionFactory.createQueueConnection();
    queueSession =
    queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    queueSender = queueSession.createSender(queue);
    message = queueSession.createTextMessage();
    for (int i = 0; i < noMessages; i++)
    message.setText("Message " + (i + 1));
    System.out.println("Producing message: " + message.getText());
    queueSender.send(message);
    queueSender.send(queueSession.createBytesMessage());
    catch (JMSException e)
    System.out.println("Exception occurred: " + e.toString());
    finally
    if (queueConnection != null)
    try
    queueConnection.close();
    catch (JMSException e)
    System.out.println("Closing error: " + e.toString());
    But when the SOA Suite is remote, I am struggling to get the settings correct
    Till now, here is what I have figured out from looking at blogs/tars etc on the Net:
    1. I need to use ApplicationClientInitialContextFactory instead of RMIInitialContextFactory (http://download.oracle.com/docs/cd/E14101_01/doc.1013/e13975/jndi.htm)
    2. The project should have a META-INF/application-client.xml file, which may be dummy (http://www.wever.org/java/space/Oracle/JmsTar1). Question is, my code is there in a single absolutely standalone code..how I can use this application-client.xml and where it has to be placed.
    Errors:
    When trying to run exact same code on local server that tries to enqueue JMS on remotee serverer
    Exception occurred: javax.jms.JMSException: Unable to create a connection to "xxxxxxx.yyyyyy01.dev.com/10.42.456.11:12,602" as user "null".
    Any help is greatly welcome.
    As an exercise, I copied this complete code on the server and then ran locally using a telnet client...it worked. So the problem is coming when accessing the server remotely.
    Rgds,
    Amit

    1. I need to use ApplicationClientInitialContextFactory instead of RMIInitialContextFactoryNot necessarily.
    2. The project should have a META-INF/application-client.xml fileThat's only necessary if going the ApplicationClientInitialContextFactory route.
    There are two types of JMS client applications you can write -- a pure/plain Java app, and an "AppClient". That first is your everyday run-of-the-mill Java application, nothing special. That latter is a special, complicated beast that tries to act as a part of the whole client/server/J2EE architecture which provides you with a semi-managed environment. Either can be made to work, but if all you need is JMS access (using plain OC4J JMS factory/queue names and not JMS Connector names), then the first is easier to get working (and performs a tiny bit better as well due to being a lighter-weight solution).
    I think the problem you are having might be: When you use the plain Java client solution, you do not have any type of management, and that includes user management. With no user management (and if the JMS server is not configured to allow anonymous connections) you need to include the username and password in the call to createConnection. (I think it may be that this is actually true in the AppClient case as well -- I avoid using the AppClient model as much as possible so my memory there is weaker.)
    If you prefer to go the AppClient route, I would point you to a demo I wrote which had a functioning example, but Oracle seems to have removed it (and all of the 10.1.3 demos?) from OTN. :-(
    Hmm, it seems to still be available on the wayback machine:
    http://web.archive.org/web/20061021064014/www.oracle.com/technology/tech/java/oc4j/1013/how_to/index.html
    (Just look down the page for "With OEMS JMS (In-Memory and File-Based)" -- there is an .html document with info, and there is a .zip file with source code.)
    Question is, my code is there in a single absolutely standalone code..how I can use this application-client.xml and where it has to be placed.The app client in my demo had the following directory structure:
    myjavaclient.class
    jndi.properties
    META-INF\MANIFEST.MF
    META-INF\application-client.xml
    META-INF\orion-application-client.xml
    When you use ApplicationClientInitialContextFactory I think it just looks under .\META-INF for the .xml files.
    -Jeff

  • How to get user defined class in java client of a bpel prcoess?

    I have written a simple bpel process which returns a bean class namely employee which has three String fields(name,id and email). From java client when I am invoking the prcoess the prcoess instance is starting and completing properly. From Bpel console when I check the audit of the instance, it shows everything as expected. But in client class instead of three strings I am getting only first string i.e email in response. I checked the mapping and all WSDL files but could not find a proper reason. I am attaching the wsdls of bpel prcoess and the client code:
    BPELProcess5.wsdl
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="BPELProcess5"
    targetNamespace="http://xmlns.oracle.com/BPELProcess5"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:client="http://xmlns.oracle.com/BPELProcess5"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:sq="http://xmlns.oracle.com/BPELProcess5/bean">
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         TYPE DEFINITION - List of services participating in this BPEL process
         The default output of the BPEL designer uses strings as input and
         output to the BPEL Process. But you can define or import any XML
         Schema type and us them as part of the message types.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <types>
    <schema attributeFormDefault="qualified"
                   elementFormDefault="qualified"
                   targetNamespace="http://xmlns.oracle.com/BPELProcess5/bean"
                   xmlns="http://www.w3.org/2001/XMLSchema">
    <complexType name="employeetype" >
    <all>
    <element name="fname" type="string"/>
    <element name="lname" type="string"/>
    <element name="id" type="string"/>
         </all>
    </complexType>
    </schema>
              <schema attributeFormDefault="qualified"
                   elementFormDefault="qualified"
                   targetNamespace="http://xmlns.oracle.com/BPELProcess5"
                   xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/BPELProcess5/bean"/>
                   <element name="BPELProcess5ProcessRequest">
                        <complexType >
                             <sequence>
                                  <element name="input" type="string"/>
                             </sequence>
                        </complexType>
                   </element>
    <!--
                   <element name="BPELProcess5ProcessResponse">               
    <complexType >
                             <sequence>
                                  <element name="output" type="sq:employeetype"/>
                             </sequence>
                        </complexType>
                   </element>
    -->
              </schema>
         </types>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         MESSAGE TYPE DEFINITION - Definition of the message types used as
         part of the port type defintions
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <message name="BPELProcess5RequestMessage">
              <part name="payload" element="client:BPELProcess5ProcessRequest"/>
         </message>
         <message name="BPELProcess5ResponseMessage">
              <part name="payload" type="sq:employeetype"/>
         </message>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PORT TYPE DEFINITION - A port type groups a set of operations into
         a logical service unit.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- portType implemented by the BPELProcess5 BPEL process -->
         <portType name="BPELProcess5">
              <operation name="process">
                   <input message="client:BPELProcess5RequestMessage" />
                   <output message="client:BPELProcess5ResponseMessage"/>
              </operation>
         </portType>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PARTNER LINK TYPE DEFINITION
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <plnk:partnerLinkType name="BPELProcess5">
              <plnk:role name="BPELProcess5Provider">
                   <plnk:portType name="client:BPELProcess5"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </definitions>
    BPELPrcoess5.bpel
    // Oracle JDeveloper BPEL Designer
    // Created: Thu Jul 14 16:50:15 IST 2005
    // Author: Arka
    // Purpose: Synchronous BPEL Process
    -->
    <process name="BPELProcess5" targetNamespace="http://xmlns.oracle.com/BPELProcess5" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ns1="http://demows/handler/SessionEJB.wsdl" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xmlns.oracle.com/BPELProcess5/bean" xmlns:client="http://xmlns.oracle.com/BPELProcess5" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"><!-- ================================================================= --><!-- PARTNERLINKS --><!-- List of services participating in this BPEL process --><!-- ================================================================= -->
    <partnerLinks><!--
    The 'client' role represents the requester of this service. It is
    used for callback. The location and correlation information associated
    with the client role are automatically set using WS-Addressing.
    -->
    <partnerLink name="client" partnerLinkType="client:BPELProcess5" myRole="BPELProcess5Provider"/>
    <partnerLink myRole="SessionEJBPortType_Role" name="PartnerLink_1" partnerRole="SessionEJBPortType_Role" partnerLinkType="ns1:SessionEJBPortType_PL"/>
    </partnerLinks><!-- ================================================================= --><!-- VARIABLES --><!-- List of messages and XML documents used within this BPEL process --><!-- ================================================================= -->
    <variables><!-- Reference to the message passed as input during initiation -->
    <variable name="inputVariable" messageType="client:BPELProcess5RequestMessage"/><!--
    Reference to the message that will be returned to the requester
    -->
    <variable name="outputVariable" messageType="client:BPELProcess5ResponseMessage"/>
    <variable name="Invoke_1_getEmployee_InputVariable" messageType="ns1:getEmployee1Request"/>
    <variable name="Invoke_1_getEmployee_OutputVariable" messageType="ns1:getEmployee1Response"/>
    </variables><!-- ================================================================= --><!-- ORCHESTRATION LOGIC --><!-- Set of activities coordinating the flow of messages across the --><!-- services integrated within this business process --><!-- ================================================================= -->
    <sequence name="main"><!-- Receive input from requestor.
    Note: This maps to operation defined in BPELProcess5.wsdl
    -->
    <receive name="receiveInput" partnerLink="client" portType="client:BPELProcess5" operation="process" variable="inputVariable" createInstance="yes"/><!-- Generate reply to synchronous request -->
    <assign name="Assign_1">
    <copy>
    <from variable="inputVariable" part="payload" query="/client:BPELProcess5ProcessRequest/client:input"/>
    <to variable="Invoke_1_getEmployee_InputVariable" part="empid"/>
    </copy>
    </assign>
    <invoke name="Invoke_1" partnerLink="PartnerLink_1" portType="ns1:SessionEJBPortType" operation="getEmployee" inputVariable="Invoke_1_getEmployee_InputVariable" outputVariable="Invoke_1_getEmployee_OutputVariable"/>
    <assign name="Assign_2">
    <copy>
    <from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/fname"/>
    <to variable="outputVariable" part="payload" query="/payload/ns2:fname"/>
    </copy>
    <copy>
    <from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/lname"/>
    <to variable="outputVariable" part="payload" query="/payload/ns2:lname"/>
    </copy>
    <copy>
    <from variable="Invoke_1_getEmployee_OutputVariable" part="return" query="/return/id"/>
    <to variable="outputVariable" part="payload" query="/payload/ns2:id"/>
    </copy>
    </assign>
    <reply name="replyOutput" partnerLink="client" portType="client:BPELProcess5" operation="process" variable="outputVariable"/>
    </sequence>
    </process>
    myClient.java
    package mypackage2;
    import bean.EmployeeBean;
    import java.rmi.RemoteException;
    import java.util.ArrayList;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.JAXRPCException;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.rpc.Service;
    import javax.xml.rpc.ServiceException;
    import javax.xml.rpc.ServiceFactory;
    import javax.xml.rpc.encoding.XMLType;
    import javax.xml.rpc.soap.SOAPFaultException;
    import org.apache.axis.Constants;
    import org.apache.axis.client.Call;
    public class myClient
    private static QName SERVICE_NAME;
    private static QName PORT_TYPE;
    private static QName OPERATION_NAME;
    private static String SOAP_ACTION;
    private static String STYLE;
    private static String THIS_NAMESPACE = "http://xmlns.oracle.com/BPELProcess5";
    private static String PARAMETER_NAMESPACE = "http://xmlns.oracle.com/BPELProcess5";
    private String location;
    static
    SERVICE_NAME = new QName(THIS_NAMESPACE,"BPELProcess5");
    PORT_TYPE = new QName(THIS_NAMESPACE,"BPELProcess5") ;
    OPERATION_NAME = new QName(THIS_NAMESPACE,"BPELProcess5ProcessRequest");
    SOAP_ACTION = "process";
    STYLE = "wrapped";
    public myClient()
    public void setLocation(String location)
    this.location = location;
    public void initiate(String symbol)
    try
    DeserializerImpl des = new DeserializerImpl();
    ServiceFactory serviceFactory = ServiceFactory.newInstance();
    Service service = serviceFactory.createService( SERVICE_NAME );
    Call call = (Call)service.createCall( PORT_TYPE );
    call.setTargetEndpointAddress( location );
    call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
    call.setProperty(Call.SOAPACTION_URI_PROPERTY, SOAP_ACTION);
    call.setOperationName(OPERATION_NAME);
    call.addParameter(new QName(PARAMETER_NAMESPACE,"input"), XMLType.XSD_STRING, ParameterMode.IN);
    Object[] params = new Object[1];
    params[0] = "1";
    call.setReturnType(new QName("http://xmlns.oracle.com/BPELProcess5", "BPELProcess5ProcessResponse"), EmployeeBean.class);
    EmployeeBean response = (EmployeeBean)call.invoke(params);
    System.out.println( " BPEL process initiated" );
    catch (SOAPFaultException e)
    System.err.println("Generated fault: ");
    System.out.println (" Fault Code = " + e.getFaultCode());
    System.out.println (" Fault String = " + e.getFaultString());
    catch (JAXRPCException e)
    System.err.println("JAXRPC Exception: " + e.getMessage());
    catch (ServiceException e)
    System.err.println("Service Exception: " + e.getMessage());
    catch(RemoteException e)
    System.err.println("Remote Exception: " + e.getMessage());
    public static void main(String[] args)
    String location = "http://localhost:9700/orabpel/default/BPELProcess5/1.0";
    myClient client = new myClient();
         client.setLocation( location );
    client.initiate( "" );
    }

    Hi Abdul,
    From the document, we know that CONSTRAINED flag is used to reduce the risk of injection attacks via the specified string. If a string is provided that is not directly resolvable to qualified
    or unqualified member names, the following error appears: "The restrictions imposed by the CONSTRAINED flag in the STRTOSET function were violated."
    So you need to make sure the members are passed properly to the STRTOSET function. For more details, please see the following links:
    http://ch1n2.wordpress.com/2010/02/21/the-restrictions-imposed-by-the-constrained-flag-in-the-strtoset-function-were-violated/
    http://www.bp-msbi.com/2010/04/passing-unconstrained-set-and-member-parameters-between-reports-in-reporting-services/
    Hope this helps.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • BAPI function call in Java

    Hi,
    I am trying to make BAPI function call in JAVA. I am using the following libraries for IBM AIX version and the sapjco.jar
    1) librfccm.o
    2) libsapjcorfc.so
    The above 2 libraries are in my java lib path.
    But I get a exception and it is referring to sapjcorfc.dll (which is a windows version) instead of referring to libsapjcorfc.so
    What should I do so that it refers to libsapjcorfc.so and not sapjcorfc.dll
    Error Details:   java.lang.ExceptionInInitializerError: JCO.classInitialize():
    Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
    JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc
    [sapjcorfc (A file or directory in the path name does not exist.)]. java.library.path
    [/usr/java14_64/jre/bin:/usr/java14_64/jre/bin:/usr/java14_64/jre/bin/classic:/usr/java14_64/jre/bin:
    /usr/sap/DP0/DVEBMGS42/exe:/usr/sap/DP0/DVEBMGS42/exe:/usr/sap/DP0/DVEBMGS42/exe:
    /tmp/sapinst_exe.1081378.1199455057:/usr/sap/DP0/SYS/exe/run:/home/db2inst1/sqllib/lib64:
    /usr/sap/DP0/DVEBMGS42/exe::/usr/lib:/usr/sap/DP0/DVEBMGS42/j2ee/os_libs:/usr/sap/DP0/DVEBMGS42/exe:
    /usr/sap/DP0/DVEBMGS42/exe:/usr/sap/DP0/DVEBMGS42/exe:/usr/lib:/lib:/usr/sap/DP0/SYS/exe/run:
    /home/db2inst1/sqllib/lib64]

    Hi Jawed,
    when  I try it as a stand alone java code on IBM AIX version BAPI connection works and it fetches the roles listed for an user from the ACTIVITYGROUP table.
    The same piece of code bundled in an ear and when deployed in SAP netweaver portal gives different errors. My sapjco.jar is in application lib folder and it is referred in classpath
    first time when i access the application url it gives me
    Error Details: java.lang.ExceptionInInitializerError: JCO.classInitialize():
    Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
    JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc
    http://sapjcorfc (A file or directory in the path name does not exist.). java.library.path
    [/usr/java14_64/jre/bin:/usr/java14_64/jre/bin:/usr/java14_64/jre/bin/classic:/usr/java14_64/jre/bin:
    /usr/sap/DP0/DVEBMGS42/exe:/usr/sap/DP0/DVEBMGS42/exe:/usr/sap/DP0/DVEBMGS42/exe:
    /tmp/sapinst_exe.1081378.1199455057:/usr/sap/DP0/SYS/exe/run:/home/db2inst1/sqllib/lib64:
    /usr/sap/DP0/DVEBMGS42/exe::/usr/lib:/usr/sap/DP0/DVEBMGS42/j2ee/os_libs:/usr/sap/DP0/DVEBMGS42/exe:
    /usr/sap/DP0/DVEBMGS42/exe:/usr/sap/DP0/DVEBMGS42/exe:/usr/lib:/lib:/usr/sap/DP0/SYS/exe/run:
    /home/db2inst1/sqllib/lib64]
    when i acess the application url next time it gives me
    Application error occurred during request processing.
      Details:   java.lang.NoClassDefFoundError: com.sap.mw.jco.JCO (initialization failure)
    Exception id: [00145EB7604700720000000F000C20FE00047CA4F0EF0615]
    Below is my my javacode - I am calling the method getUserRoles
    package com.mysap.sso;
    import com.sap.mw.jco.*;
    import java.util.ArrayList;
    import java.util.List;
    public class BapiConnection {
         private static JCO.Client mConnection;
         private static JCO.Repository mRepository;
         private static JCO.Function createFunction(String functionName)
                   throws Exception {
              try {
                   IFunctionTemplate ft = mRepository.getFunctionTemplate(functionName
                             .toUpperCase());
                   if (ft == null) {
                        return null;
                   } else {
                        return ft.getFunction();
              } catch (Exception ex) {
                   throw ex;
         public List getUserRoles(String user) {
              JCO.Function function = null;
              JCO.Table activitygroups = null;
              List rolesList = null;
              mConnection = null;
              mRepository = null;
              mConnection = JCO.createClient("300", "INVTRY_SEGMT", "Welcome%1",
                        null, "ade00fe", "22");
              try {
                   //Connect to the WebAS ABAP with the parameters above
                   mConnection.connect();
                   //Create a function repository to be able to build a function
                   mRepository = new JCO.Repository("INVTRY_SEGMT", mConnection);
                   //Get the function
                   function = createFunction("BAPI_USER_GET_DETAIL");
                   //Set the only import parameter
                   function.getImportParameterList().setValue(user, "USERNAME");
                   //Execute the function
                   mConnection.execute(function);
                   //Get the 'ADDRESS' return structure
                   activitygroups = function.getTableParameterList().getTable(
                             "ACTIVITYGROUPS");
                   rolesList = new ArrayList();
                   for (int i = 0; i < activitygroups.getNumRows(); i++, activitygroups
                             .nextRow()) {
                        System.out.println(activitygroups.getString("AGR_NAME"));
                        logger.debug(activitygroups.getString("AGR_NAME"));
                        rolesList.add(activitygroups.getString("AGR_NAME"));
                   mConnection.disconnect();
              } catch (Exception ex) {
                   System.err.println(ex.toString());
              return rolesList;

  • Problem consuming web service created by ABAP via standalone java client

    I'm trying to consume web service created by ABAP in R3 system via standalone java client. I should be getting a string reply after consumed the web service (ZSMS_INBOUND), but so far i received null. I cant find any exception or log to trace the problem. Any help would be appreciated. Is there anything wrong with my client calling the web service?
    public void myMethod{
              // TODO : Implement
              try{
                   Stub stub = (Stub)new ZSMS_INBOUNDServiceImpl().getLogicalPort();
                   stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY,"http://mytest:8080/sap/bc/srt/rfc/sap/ZSMS_INBOUND?sap-               client=100&wsdl=1.1&mode=sap_wsdl");
                   inboundService = (ZSMS_INBOUND) stub;
                   BAPIRET2 str = inboundService.ZSMS_INBOUND(date, message, modemId, smsId, tel, time);
                   ackDeliveryArray<i> = str.toString();
              }catch (Exception e) {
                   e.printStackTrace();
    Generated following SAP help standalone proxy creation steps.
    ***files fr SEIs
    ZSMS_INBOUND.java   (interface)
    ZSMS_INBOUNDService.java  (interface)
    ZSMS_INBOUNDServiceImpl.java
    ZSMS_INBOUNDSoapBindingStub.java
    ***files fr Proxy classes
    ZSMS_INBOUND.java
    ZSMS_INBOUNDResponse.java
    BAPIRET2.java
    .... many more files
    the wsdl is as below (generated by ABAP):
    <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions targetNamespace="urn:sap-com:document:sap:rfc:functions" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:n0="http://www.sap.com/webas/630/soap/features/authentication/" xmlns:sap="http://www.sap.com/webas/630/wsdl/features" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:sap-com:document:sap:rfc:functions" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <wsdl:types>
    - <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions" elementFormDefault="unqualified" attributeFormDefault="qualified">
    - <xsd:simpleType name="char1">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="1" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char10">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="10" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char17">
    + <xsd:restriction base="xsd:string">
      <xsd:maxLength value="17" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char170">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="170" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char20">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="20" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char220">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="220" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char30">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="30" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char32">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="32" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="char50">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="50" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="date">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="10" />
      <xsd:pattern value="\d\d\d\d-\d\d-\d\d" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="numeric3">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="3" />
      <xsd:pattern value="\d*" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="numeric6">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="6" />
      <xsd:pattern value="\d*" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:simpleType name="time">
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="8" />
      <xsd:pattern value="\d\d:\d\d:\d\d" />
      </xsd:restriction>
      </xsd:simpleType>
    - <xsd:complexType name="BAPIRET2">
    - <xsd:sequence>
      <xsd:element name="TYPE" type="tns:char1" />
      <xsd:element name="ID" type="tns:char20" />
      <xsd:element name="NUMBER" type="tns:numeric3" />
      <xsd:element name="MESSAGE" type="tns:char220" />
      <xsd:element name="LOG_NO" type="tns:char20" />
      <xsd:element name="LOG_MSG_NO" type="tns:numeric6" />
      <xsd:element name="MESSAGE_V1" type="tns:char50" />
      <xsd:element name="MESSAGE_V2" type="tns:char50" />
      <xsd:element name="MESSAGE_V3" type="tns:char50" />
      <xsd:element name="MESSAGE_V4" type="tns:char50" />
      <xsd:element name="PARAMETER" type="tns:char32" />
      <xsd:element name="ROW" type="xsd:int" />
      <xsd:element name="FIELD" type="tns:char30" />
      <xsd:element name="SYSTEM" type="tns:char10" />
      </xsd:sequence>
      </xsd:complexType>
    - <xsd:element name="ZSMS_INBOUND">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="DATE" type="tns:date" />
      <xsd:element name="MESSAGE" type="tns:char170" />
      <xsd:element name="MODEMID" type="tns:char10" />
      <xsd:element name="SMSID" type="tns:char17" />
      <xsd:element name="TEL" type="tns:char20" />
      <xsd:element name="TIME" type="tns:time" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    - <xsd:element name="ZSMS_INBOUNDResponse">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="RETURN" type="tns:BAPIRET2" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      </xsd:schema>
      </wsdl:types>
    - <wsdl:message name="ZSMS_INBOUND">
      <wsdl:part name="parameters" element="tns:ZSMS_INBOUND" />
      </wsdl:message>
    - <wsdl:message name="ZSMS_INBOUNDResponse">
      <wsdl:part name="parameters" element="tns:ZSMS_INBOUNDResponse" />
      </wsdl:message>
    - <sap:Feature name="design_0" uri="http://www.sap.com/webas/630/soap/features/authentication/">
    - <sap:Property qname="n0:AuthenticationLevel">
      <sap:Option value="n0:None" />
      </sap:Property>
      </sap:Feature>
    - <wsdl:portType name="ZSMS_INBOUND">
      <sap:useFeature feature="tns:design_0" />
    - <wsdl:operation name="ZSMS_INBOUND">
      <wsdl:input message="tns:ZSMS_INBOUND" />
      <wsdl:output message="tns:ZSMS_INBOUNDResponse" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="ZSMS_INBOUNDSoapBinding" type="tns:ZSMS_INBOUND">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="ZSMS_INBOUND">
      <soap:operation soapAction="" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="ZSMS_INBOUNDService">
    - <wsdl:port name="ZSMS_INBOUNDSoapBinding" binding="tns:ZSMS_INBOUNDSoapBinding">
      <soap:address location="http://mytest:8080/sap/bc/srt/rfc/sap/ZSMS_INBOUND?sap-client=100" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

    I'm now able to consume the web service, but with the error as below:
    Warning ! Protocol Implementation [com.sap.engine.services.webservices.jaxrpc.wsdl2java.features.builtin.MessageIdProtocol] could not be loaded (NoClassDefFoundError) !
    Error Message is :com/sap/guid/GUIDGeneratorFactory
    BAPIRET2 mappingInfo:
      TYPE   TYPE   false   false   11
      ID   ID   false   false   11
      NUMBER   NUMBER   false   false   11
      MESSAGE   MESSAGE   false   false   11
      LOG_NO   LOG_NO   false   false   11
      LOG_MSG_NO   LOG_MSG_NO   false   false   11
      MESSAGE_V1   MESSAGE_V1   false   false   11
      MESSAGE_V2   MESSAGE_V2   false   false   11
      MESSAGE_V3   MESSAGE_V3   false   false   11
      MESSAGE_V4   MESSAGE_V4   false   false   11
      PARAMETER   PARAMETER   false   false   11
      ROW   ROW   false   false   11
      FIELD   FIELD   false   false   11
      SYSTEM   SYSTEM   false   false   11
    My java code is :
    public class MyTest {
         public static void main(String[] args){
              try{
                             Stub stub = (Stub)new ZSMS_INBOUNDServiceImpl().getLogicalPort();
                             stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY,"http://mytest:8080/sap/bc/srt/rfc/sap/ZSMS_INBOUND?sap-client=100");
                             ZSMS_INBOUND inboundService = (ZSMS_INBOUND) stub;
                             BAPIRET2 str = inboundService.ZSMS_INBOUND(param1,param2,param3,param4,param5,param6);
                             System.out.println(str.toString());
                             }catch (Exception e) {
                                  e.printStackTrace();

  • Creating a simple java client for a session EJB local interface

    Hi all
    Is it possible to create a simple java client for a session ejb local interface with JDeveloper.
    The problem is that it creates a test client for a remote interface only...
    i.e.
    MySessionEJB sessionEJB = context.lookup("MySessionEJB")
    and once i try to adjust it manually for the local interface...
    MySessionEJBLocal sessionEJB = (MySessionEJBLocal) context.lookup("MySessionEJBLocal") (MySessionEJBLocal - is the name of my local interface)
    it generates the exception:
    javax.naming.NotFoundException: SessionEJBLocal not found
    at...........................(RMIClientContext.java:52)
    There is still no problem with accessing the local interface object from the jsf project where i've added <ejb-local-ref> tag into the web.xml file.
    but i need the possibility of testing the simple java client for the local interface to test business methods wich should return objects without indirect properties
    Thanks in advance.
    Alex.

    Pedja thanks for reply.
    I still dont understand what is wrong with my example.
    The first peace of the code i wrote (getting the reference to the remote interface object) works pretty well, and even more it is produced automatically by JDeveloper, so why we cant get a reference to the local interface object the same way?
    Certanly we should use the local interface for getting access to the resource functioning under the same local jvm and i think it doesnt metter wich app server we really use wls or oas or others
    Thanks. Alex.

  • Java Client for Adobe Flash Media Streaming Server

    Hello
    Is it possible to connect to a Adobe Flash Media Streaming
    Server by a java client?
    I need to be able to receive a streamed RTMP flash-video and
    implement the following functions:
    - PLAY
    - PAUSE
    - STOP
    - GO TO A SPECIFIC POSITION
    I need to implement this player on a non-top-level Swing
    JComponent in Java (because this is the restriction I have from
    sun's wonderland, where I want to implement this player)...
    How can I do that in Java? Are there any code examples
    available or do you know an API or other possibilities to do that?
    Thanks for you help.
    Kind regards,
    Peter

    This is a pretty big question. Is it possible? Probably. In
    theory it should. But *normally* the client is based on the flash
    player. I believe the protocol is publically available if you want
    to roll your own.
    But if you are looking for readily available solution, there
    is none that I know of.

  • Trigger java client update when table changes

    I have a Java Swing client and a C worker program. Both need to communicate with each other via events (C writes progress to Oracle table, Java Swing client displays progress to user).
    I thought I'd do this via a trigger on an oracle table. However, I couldn't figure out how to achieve that. Well, creating the trigger was the easy part, but how do I let the trigger and as a follow-up a stored procedure communicate with my Java client? All the info I found was about triggers and how to store a Java method in an Oracle DB. That's not what I need. I guess I need to register my Java client somehow to monitor the trigger / table.
    Does anyone know how to do that? I'd prefer to not use any additional libraries (Oracle AQ libraries, Oracle streams). A simple trigger would suffice.
    Thank you very much for your help!

    rp0428 wrote:
    >
    The client should poll for updates.
    Pushing from the database, which your original suggestion and the others provides no benefit in terms of the enterprise and might cause unforseen and difficult to diagnose problems.
    >
    I don't agree with either of these comments. Please explain them and provide any supporting documentation or other reliabe sources that you are basing these comments on.
    In particular clarify whether your comments are about the technology of notification in general or whether you feel that the notification solution is not appropriate for this particular use case.
    Polling is generally a terribly wasteful, inefficient and non-productive method of trying to identify changes that happen in a database. Provide supporting documentation for that.
    Naturally the actual metrics for this depend on the number, types and frequency of the DB changes in general and with their relation to the polling frequency in particular.Yep. And most of the time the specifics for that is such that one or both the following is true
    1. The requirements are wrong (for example no GUI needs to be update 100 times a second.)
    2. The requirements are loose enough that polling is perfectly adquate and appropriate solution.
    Oracle itself has gone in the opposite direction with the technology that it develops as can be inferred by the various methods provided in recent releases to support replication and the technology underlying the support of fast refresh materialized views.
    Oracle has all sorts of stuff in it. That doesn't mean that it ideal for all situations or even most situations.
    These technologies include Advanced Queuing, Change Data Capture, Advanced Replication, Standby Databases and the like.
    The only major Oracle technology that I am aware of that does not tend towards publish/subscribe is LogMiner and it does not use polling but rather uses a batch query process.
    And yet for 20 years people have managed to implement large solutions without that.
    Detection of DB changes is difficult for even small single tables without using functionality provided by Oracle specifically for that purpose. There are many, many references in these forums and on the web in general where developers have attempted to 'roll-their-own' procedures for detecting changes after the fact. Most of these attempts are flawed both in their design and execution.
    And yet you think that this new technology will provide immediate error free solutions both on Oracles sides and the implementors side?
    Polling is generally wasteful and inefficient for several reasons. First, poll queries can execute repeatedly when there haven't been any changes at all. This effort is entirely wasted and non-productive.
    I have a large volume database server whose cpu utilization is less than 3% with a projected volume this year of 3/4 billion dollars. In the mid 1980s I was more concerned with utilization. Not so much any more.
    On the other hand experience would suggest that developers have far, far more problems getting the database designs right in the first place. So I don't have great confidence in their ability to use brand new technologies to solve large volume problems.
    And if they don't have large volumes then the point is moot.
    The poll queries cannot easily determine exactly when the change occured; change meaning it was COMMITTED to the database. The common approach of updating columns such as MODIFIED_DATE within a trigger are flawed because any such date/time assigned in the trigger is virtually guaranteed to occur BEFORE the data is actually committed.
    The classic flaw manifests itself when the trigger assigns a value before midnight but the commit actually occurs after midnight. Thus two INSERT/UPDATES can have their data COMMITTED at exactly the same SCN and timestamp value but the MODIFIED_DATE values can be for two different days.
    There is no way to query this data on a nightly basis to get 'changes that happened today' with the risk of missing data the next night when the extract occurs, or worse, duplicating some data in the extracts for two different nights.
    I agree that the design you specified is flawed.
    It however is an excellent demonstration of how a developer might create a flawed design - as I a suggested. New technologies do not fix flawed designs. All they do is provide even more ways to create flawed designs. Which is exacerbated by large volume needs.
    And 'pushing from the database'? The change notification process is similar to publish/subscribe mechanisms and also similar to the way that listeners are used in Java.
    Certainly you wouldn't suggest that Java applications should 'poll' GUI objects to see if a user has taken any action would you?
    I agree your analogy is not apt for this discussion.

  • Can form be run in the java client?

    I create a java client based on SWING.I want to use form
    in my java client.
    Is it possible? Can I use java client to run .fmx ?

    Hi Frank,
    Is there no way to communicate from a JAVA client to the form applet? I require this functionality to set the oracle forms global variables?
    Many thnx

  • WebObjects Java Client-JNLP fine on OS X and Linux, Windows problem

    Hi,
    I have been making a somewhat fruitful exploration into WebObjects Java Client development in order to get my nice IB interfaces for prototypes functional and deployed in a cross platform environment.
    I have made some good strides in figuring out the semi-documented process of Java/IB integration, and how to build (including adding external libraries) and deploy onto a server (if anyone else is interested I will share; perhaps a blog is deserved), and though I am able to run it from both Mac OSX and Linux clients on the network (the Linux interface currently looks like garbage but will work on that), when I try to run it on windows I immediately get the following error tab in General:
    An error occurred while launching/running the application.
    Title: ProfessionalTradingRAD
    Vendor: Vendor
    Category: Download Error
    Unable to load resource: http://g5.nl.imc.local:2002/cgi-bin/WebObjects/ProfessionalTradingRAD.woa/eowebs tart/com.webobjects.eodistribution._EOWebStartAction/webStart/JavaClient.jnlp
    and in the Exception tab it reads:
    JNLPException[category: Download Error : Exception: java.io.IOException: rename failed in cache to: C:\Documents and Settings\alko\Application Data\Sun\Java\Deployment\javaws\cache\http\Dg5.nl.imc.local\P2002\DMcgi-bin\DMW ebObjects\DMProfessionalTradingRAD.woa\DMeowebstart\DMcom.webobjects.eodistribut ion._EOWebStartAction\DMwebStart\AMJavaClient.jnlp : LaunchDesc: null ]
    at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
    at com.sun.javaws.cache.DownloadProtocol.getLaunchFile(Unknown Source)
    at com.sun.javaws.LaunchDownload.getUpdatedLaunchDesc(Unknown Source)
    at com.sun.javaws.Launcher.downloadResources(Unknown Source)
    at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
    at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    It looks to me like the problem is with trying to rename the directory to a name with multiple periods, which works on UNIX but not on Windows. Is this a familiar problem? Is there any workaround/solution or any intent to fix?
    Thanks
    --Alex Kogon
      Mac OS X (10.4.6)  

    open terminal and run runinstaller again...
    don't double click and execute runinstaller....
    From Achi Cheng

  • Final cut server not serving java client application

    weird situation. today i went to download the java client for final cut server 1.5.1 at my normal address and the webpage came up welcome.. with the ability to download the client application as normal but when i pressed the button to download nothing happened.
    anyone have any ideas how to resolve this? manually removed all of the client java cache on the client machine and also reinstalled fcs 1.5.1 on the server with a restore of the database without any change in functionality. any ideas?

    hello ben,
    thanks for taking your time to help me with the issue i am seeing here. I will do my best to read into what you said and explain.
    1. Network User Permissions Problems.
    maybe you can explain, but i have not authenticated against anything at this point, just went to the normal.. "http://FQDN/finalcutserver"... the normal fcserver webpage comes up but when i click download it does not give me the ability to download the java applet or run a script that maybe delivers the java applet.
    maybe i am not understanding, but what about what i am experiencing looks like a permission issue? permission for fcserver to distribute the java applet to a user who goes to the final cut server web page to download the client?
    If that is the case, would you know where to start looking for permission issues?
    2. Verfy the web server services and comb through the user permissions and services on the server.
    The web services, service is on and when i look at the logs with any reference of final cut server, this is what i see right after when i try to download the client app.
    File does not exist:/Library/WebServer/Documents/FinalCutServer, referer: http://FQDN/~localadmin/webstart/content.php
    as far as the user permissions, what should i look for? there are very few users, the local admin, the open directory admin and 1 other user in od.
    with regard to services running on server 10.6.1 and how they affect final cut server.. checked use of how i would use AFP, DNS lookups, OpenDirectory & network homes, and Web services and appear to be working as far as i can tell.
    hope the above information helps. thanks in advance for helping troubleshoot.

Maybe you are looking for

  • Is there a way to get the coherence reporter to record the interval?

    There are three questions, really - but the first is the most important. 1. Can you get the reporter to record the duration since the last batch in seconds (or ms) in the same row as the current batch? 2. Can you get the reporter to record the timest

  • How to display mutpliple components of one report in SharePoint webparts?

    Our customer requires flexible report layouts in SharePoint. For example, if we create a PivotTable, a PivotChart and a filter in Excel, then these three elements should be made available as separate webparts so they can be placed anywhere on the Sha

  • What's the Point of Photo Stream?

    What is the point of having the option to turn on or off the photo stream if it no longer exists?  If it has been replaced by the recent activity feature then why not have the option to turn on or off the recent activity feature?

  • Downloaded Epsom printer app need help to set printer up on iPad 3

    Need help to set up Epsom printer to ipad3 downloaded Epsom app can find the printer but don't know where to set up

  • Export user data

    Hi All, I am using Siebel 7.7 My test environment will be overwritten by production data, the only issue being that the test environment users would not be able to log in then on the test environment as the test data is overwritten. Is there a way to