PHP using soap to call EJB

Hello everybody,
I've a problem to call a EJB form a PHP script.
There is a Apache with PHP 5.2.0 and a SAP NetWeaver Application Server 7.10 / AS Java 7.10 running on the system.
I wanted to use soap to call a method in an EJB. It's only a test EJB:
[code]
package beans;
import javax.ejb.Stateless;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService(name="HelloWorldEARBean",serviceName="HelloWorldEARBeanService",targetNamespace="http://beans/",portName="HelloWorldEARBeanPort") @Stateless public class HelloWorldEARBean {
  @WebMethod public String sayHello(String testStr){
            return "Hello Mr. "+testStr;
  @WebMethod public String getReturn(String inputStr){
            return "the return value is"+inputStr;
[/code]
I tried it with the PEAR SOAP in the following script:
[code]
<?php
require_once 'SOAP/Client.php';
$wsdl_url     = 'http://localhost:50000/HelloWorldEARBeanService/HelloWorldEARBean?wsdl';
$WSDL = new SOAP_WSDL($wsdl_url);
$client = $WSDL->getProxy();
$client->__trace(1);
$options=array('namespace' => 'http://beans/',
  'style' => 'rpc',
  'soapaction' => 'sayHello');
$NAME = "Bob"; 
$parameters=array(
     'parameters', $NAME
$result = $client->getReturn($parameters);
echo "<pre>";
print_r($params);
echo "</pre>";
echo "<h2>return</h2>";
echo "<pre>";
print_r($result);
echo "</pre>";
echo '<h2>Request</h2>';
echo '<pre>' . htmlspecialchars($client->__getlastrequest(), ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2>';
echo '<pre>' . htmlspecialchars($client->__getlastresponse(), ENT_QUOTES). '</pre>';
?>
[/code]
The AS distributes the following WSDL:
[code]
- <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://beans/" xmlns:tns="http://beans/">
- <wsdl:types>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://beans/">
  <xs:element name="getReturn" type="tns:getReturn" />
  <xs:element name="getReturnResponse" type="tns:getReturnResponse" />
  <xs:element name="sayHello" type="tns:sayHello" />
  <xs:element name="sayHelloResponse" type="tns:sayHelloResponse" />
- <xs:complexType name="sayHello">
- <xs:sequence>
  <xs:element name="arg0" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
- <xs:complexType name="sayHelloResponse">
- <xs:sequence>
  <xs:element name="return" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
- <xs:complexType name="getReturn">
- <xs:sequence>
  <xs:element name="arg0" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
- <xs:complexType name="getReturnResponse">
- <xs:sequence>
  <xs:element name="return" type="xs:string" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
  </xs:schema>
  </wsdl:types>
- <wsdl:message name="sayHelloIn">
  <wsdl:part name="parameters" element="tns:sayHello" />
  </wsdl:message>
- <wsdl:message name="sayHelloOut">
  <wsdl:part name="sayHelloResponse" element="tns:sayHelloResponse" />
  </wsdl:message>
- <wsdl:message name="getReturnIn">
  <wsdl:part name="parameters" element="tns:getReturn" />
  </wsdl:message>
- <wsdl:message name="getReturnOut">
  <wsdl:part name="getReturnResponse" element="tns:getReturnResponse" />
  </wsdl:message>
- <wsdl:portType name="HelloWorldEARBean">
- <wsdl:operation name="sayHello" parameterOrder="parameters">
  <wsdl:input message="tns:sayHelloIn" />
  <wsdl:output message="tns:sayHelloOut" />
  </wsdl:operation>
- <wsdl:operation name="getReturn" parameterOrder="parameters">
  <wsdl:input message="tns:getReturnIn" />
  <wsdl:output message="tns:getReturnOut" />
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="HelloWorldEARBeanBinding" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" type="tns:HelloWorldEARBean">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="sayHello">
  <soap:operation soapAction="" />
- <wsdl:input>
  <soap:body parts="parameters" use="literal" />
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" />
  </wsdl:output>
  </wsdl:operation>
- <wsdl:operation name="getReturn">
  <soap:operation soapAction="" />
- <wsdl:input>
  <soap:body parts="parameters" use="literal" />
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" />
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="HelloWorldEARBeanService">
- <wsdl:port name="HelloWorldEARBeanPort" binding="tns:HelloWorldEARBeanBinding">
  <soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://localhost:50000/HelloWorldEARBeanService/HelloWorldEARBean" />
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>
[/code]
By the following output it's obvious that the AS or the EJB (webservice) doesn't receive the parameter send by the PHP script. Look at the output:
return value:
the return value is null
[code]
Request:
POST /HelloWorldEARBeanService/HelloWorldEARBean HTTP/1.0
User-Agent: PEAR-SOAP 0.8.0RC4-devel
Host: localhost
Content-Type: text/xml; charset=UTF-8
Content-Length: 438
SOAPAction: ""
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>
<SOAP-ENV:Body>
<getReturn xmlns="http://beans/">
<item>parameters</item>
<item>Bob</item></getReturn>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response:
HTTP/1.1 200 OK
server: SAP NetWeaver Application Server 7.10 / AS Java 7.10
content-type: text/xml; charset=utf-8
date: Wed, 14 Feb 2007 15:51:53 GMT
connection: close
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2007-02-14T15:51:53Z</wsu:Created>
<wsu:Expires>2007-02-14T15:52:23Z</wsu:Expires></wsu:Timestamp></wsse:Security></SOAP-ENV:Header>
<SOAP-ENV:Body><ns2:getReturnResponse xmlns:ns2='http://beans/'>
<return>the return value is null</return></ns2:getReturnResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
[/code]
I used different soap interfaces for PHP like nusoap and the integrated soap interface of PHP 5.
Further I experimented with different parameters inside the function call
that results in small differencies at the xml-request.
Thanks.

Hi
I've solved the problem now. I just have to add
@SOAPBinding(style=SOAPBinding.Style.RPC)
in the EJB, that's all.
Here is the complete code, ... maybe some other guys have this problem too, so I will post the working code:
At first the EJB:
package beans;
import javax.ejb.Stateless;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;
import beans.HelloWorldEARBean;
@WebService(name="HelloWorldEARBean",serviceName="HelloWorldEARBeanService",targetNamespace="http://beans/",portName="HelloWorldEARBeanPort")
@SOAPBinding(style=SOAPBinding.Style.RPC)
@Stateless public class HelloWorldEARBean {
     @WebMethod public String sayHello(@WebParam(name="testStr") String testStr){
            return "Hello Mr. "+testStr;
2. the local XML:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://beans/" xmlns:tns="http://beans/">
  <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://beans/">
      <xs:element name="sayHello" type="tns:sayHello"/>
      <xs:element name="sayHelloResponse" type="tns:sayHelloResponse"/>
      <xs:complexType name="sayHello">
          <xs:element name="testStr" type="xs:string" minOccurs="0"/>
      </xs:complexType>
      <xs:complexType name="sayHelloResponse">
          <xs:element name="return" type="xs:string" minOccurs="0"/>
      </xs:complexType>
    </xs:schema>
  </wsdl:types>
  <wsdl:message name="sayHelloIn">
    <wsdl:part name="parameters" element="tns:sayHello"/>
  </wsdl:message>
  <wsdl:message name="sayHelloOut">
    <wsdl:part name="sayHelloResponse" element="tns:sayHelloResponse"/>
  </wsdl:message>
  <wsdl:portType name="HelloWorldEARBean">
    <wsdl:operation name="sayHello" parameterOrder="parameters">
      <wsdl:input message="tns:sayHelloIn"/>
      <wsdl:output message="tns:sayHelloOut"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="HelloWorldEARBeanBinding" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" type="tns:HelloWorldEARBean">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="sayHello">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="HelloWorldEARBeanService">
    <wsdl:port name="HelloWorldEARBeanPort" binding="tns:HelloWorldEARBeanBinding">
      <soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://localhost:50000/HelloWorldEARBeanService/HelloWorldEARBean"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
3. the PHP script:
see next post
Thank you very much for your help.

Similar Messages

  • RollbackException using UserTransaction when calling EJB in separate server

    I'm using WL 6.1 on Solaris and am calling a stateless session EJB that
              is running in a separate server. I'm looking up the remote EJB using
              JNDI and calling through it's home interface. This works fine but if
              the client code begins a UserTransaction, then calls the EJB that's in
              the separate server, and then calls commit on the transaction, I get the
              following:
              weblogic.transaction.RollbackException: Aborting prepare because some
              resources could not be assigned - with nested exception:
              [javax.transaction.SystemException: Aborting prepare because some
              resources could not be assigned]
              The code that works looks like:
              rgData =
              HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              whereas the code that fails is:
              UserTransaction transaction = new UserTransaction();
              transaction.begin();
              rgData =
              HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              transaction.commit();
              If I put the EJB in the same server as the client, I don't get the
              exception so it seems to be related to running it in the separate server
              and using the UserTransaction. The deployment descriptor of the EJB
              states that it "Supports" transactions.
              Any ideas?
              Thanks,
              John
              

    Yes, actually we are using:
              AppServerTransaction transaction = new AppServerTransaction();
              which is a wrapper which does what you say:
              Context ctx = new InitialContext(...); // connect to another WLS
              UserTransaction tx = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
              and our HomeHolder does what you say as well:
              Homexxx home = ctx.lookup(...);
              Any ideas why surrounding the EJB call by a UserTransaction causes a problem when
              committing?
              Thanks,
              John
              Dimitri Rakitine wrote:
              > John Hanna <[email protected]> wrote:
              > > I'm using WL 6.1 on Solaris and am calling a stateless session EJB that
              > > is running in a separate server. I'm looking up the remote EJB using
              > > JNDI and calling through it's home interface. This works fine but if
              > > the client code begins a UserTransaction, then calls the EJB that's in
              > > the separate server, and then calls commit on the transaction, I get the
              > > following:
              >
              > > weblogic.transaction.RollbackException: Aborting prepare because some
              > > resources could not be assigned - with nested exception:
              > > [javax.transaction.SystemException: Aborting prepare because some
              > > resources could not be assigned]
              >
              > > The code that works looks like:
              >
              > > rgData =
              > > HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              >
              > > whereas the code that fails is:
              >
              > > UserTransaction transaction = new UserTransaction();
              >
              > It's an interface, how did this work? Assuming that you do not want
              > distributed tx, does this work:
              >
              > Context ctx = new InitialContext(...); // connect to another WLS
              > UserTransaction tx = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
              > Homexxx home = ctx.lookup(...);
              > tx.begin();
              > home.create().getResourceOptions(qd);
              > tx.commit();
              >
              > ?
              >
              > > transaction.begin();
              > > rgData =
              > > HomeHolder.ROUTING_GUIDE_MGR_HOME.create().getResourceOptions(qd);
              > > transaction.commit();
              >
              > > If I put the EJB in the same server as the client, I don't get the
              > > exception so it seems to be related to running it in the separate server
              > > and using the UserTransaction. The deployment descriptor of the EJB
              > > states that it "Supports" transactions.
              >
              > > Any ideas?
              >
              > > Thanks,
              >
              > > John
              >
              > --
              > Dimitri
              

  • Webservices using PHP - PEAR SOAP Package

    Hello,
    I am looking to query then use IDM attributes in our PHP based portal using webservices.
    THe PHP PEAR SOAP Client is the library I intend to use.
    Has anyone successfully used a PHP Library to extract IDM attributes?
    Below is the start of my venture.
    Thank you in advance
    <?
    /* Include PEAR::SOAP's SOAP_Client class: */
    require_once('SOAP/Client.php');
    /* Create a new SOAP client using PEAR::SOAP's SOAP_Client-class: */
    $client = new SOAP_Client('http://domain.name.com/idm/servlet/rpcrouter2');
    /*Send request to server to the server and store its response in $response: */
    $response = $client->call('rpcrounter2',$params,array('namespace'=> 'urn:oasis:
    names:tc:DSML:2:0:core','trace'=>'true'));
    /* Print the server-response: */
    echo $response;

    Hello,
    I am looking to query then use IDM attributes in our PHP based portal using webservices.
    THe PHP PEAR SOAP Client is the library I intend to use.
    Has anyone successfully used a PHP Library to extract IDM attributes?
    Below is the start of my venture.
    Thank you in advance
    <?
    /* Include PEAR::SOAP's SOAP_Client class: */
    require_once('SOAP/Client.php');
    /* Create a new SOAP client using PEAR::SOAP's SOAP_Client-class: */
    $client = new SOAP_Client('http://domain.name.com/idm/servlet/rpcrouter2');
    /*Send request to server to the server and store its response in $response: */
    $response = $client->call('rpcrounter2',$params,array('namespace'=> 'urn:oasis:
    names:tc:DSML:2:0:core','trace'=>'true'));
    /* Print the server-response: */
    echo $response;

  • Can I use SOAP calls to remotely access functions on a SOAP server?

    Hi,
    I've used JavaScript and SOAP with "regular Acrobat" (e.g. Acroforms) to connect to a SOAP server, followed by Acrobat automatically setting up functions that I can call from JavaScript that, courtesy of SOAP, are relayed to the SOAP server for execution.  For example, a SOAP server that implements a Temperature function.  After doing the Net.SOAP.connect, my JavaScript magically has access to the Temperature() function, which is then executed remotely on the SOAP server courtesy of SOAP protocol.
    My question is: With Livecycle Designer and it's XFA-based forms, do I have the same ability to programmatically connect to a SOAP server and automatically have JavaScript functions set up that I can call on the server?  From what I've read, there are LC Submit and Execute operations which interact (e.g. exchange data) with a specified SOAP server, but it isn't clear that LC provides the ability to end up with a set of functions that I can call from my JavaScript that are then executed on the SOAP server.
    Stated more simply: Does LiveCycle Designer have the ability to connect to a SOAP server and automatically set up JavaScript functions that I can call (that then get relayed to the SOAP server for execution, followed by the return of data to my XFA-based program)?
    Thanks.
    Dave

    Hi Varma_LC and pguerett,
    First, thank you both for your quick responses!  It sounds like I shouldn't have any trouble using XFA forms and SOAP together.
    Let me ask a related question (not about LiveCycle & SOAP, but just about SOAP).  I'm trying to return two values from one SOAP call.  http://www.avoka.com/blog/?p=998&cpage=1#comment-1692 describes how to do this.  Unfortunately, it's not working for me.
    I'm able to retrieve single values from my SOAP server just fine.  When I try to return two values, the Acrobat JavaScript debugger says both values are "UNDEFINED".  The key part of my code is:
       var IntValue =   // define an int
         soapType: "xsd:int",
         soapValue: "1"
       var NValue =
           n1: IntValue  // n1 is the parameter my SOAP server expects
       var GetTheData = service.GetAllData(NValue);  // Go get the data and populate the GetTheData object
       console.println("GetTheData = " + GetTheData.CmdError + GetTheData.CmdResults);
       Param_1V.value = GetTheData.CmdError;     // This is a text box to display the returned value
       Param_2V.value = GetTheData.CmdResults; // This is also a text box to display the returned value
    Both the console.println & the two text boxes (beginning with Param) print out the same results, namely "UNDEFINED".
    I ran my SOAP client and SOAP server on two different computers, and then used WireShark to look at the SOAP protocol.  The SOAP protocol looks fine, and contains CmdError and CmdResults XML opening/closing tags around the actual data I'm trying to read from the SOAP server. Plus there are GetAllDataResponse and GetAllDataResult XML opening/closing tags around the data XML tags.
    I'm using Acrobat 9 and I developed my SOAP server using Windows Communication Foundation (WCF) 3.5.  The same JavaScript program that is unable to retrieve two values returns one value just fine (a different service... call, of course).  In other words, it's being done in one program, not two separate programs.  So, my singular Net.SOAP.connect call seems to be working fine.
    When I do the Net.SOAP.connect, I display the returned services, and GetAllData is listed, so Acrobat JavaScript knows about this particular service.
    BTW, the WCF built-in client works fine in retrieving/displaying the two returned values, correctly detecting and displaying both returned values.  Of course, the WCF client may have different "rules" than Acrobat has in terms of processing SOAP messages.  I've seen differences before between the WCF client and Acrobat.
    Any insights either of you have or anyone else has would be *greatly* appreciated. I've never used try/catch to trap JavaScript errors, if there is some type of error I should logically be looking for, I would be interested in information on that as well.
    Thanks!
    Dave

  • SAP MII 14.0 - Calling Transactions using SOAP Runner fails

    Hello All,
    We are calling transactions in SAP MII 14.0 from external apps using SOAP Runner and we are passing the login info in the payload. But we are getting the following error.
    We are passing the following in the payload.
    <xmii:LoginName>Username</xmii:LoginName>
    <xmii:LoginPassword>Password</xmii:LoginPassword>
    We are getting 401 unauthorized as the user name and password is not propagated to the MII.
    It works if we supply the info explicitly when we invoke the URL.
    Thanks,
    Kiran

    Hello Rajesh,
    I don't think that will be allowed. We usually pass the credentials in the payload and it has always worked for us in MII 12.1. But in MII 14.0 it does not seem to be working.
    Thanks,
    Kiran

  • Fault while calling a Web service using SOAP 1.2

    Hi ,
    I have created a simple PL/SQL web service using Jdeveloper from PL/SQL using SOAP 1.2.
    But while i call that from PL/SQL, i am getting a version mismatch.
    While the same service created from SOAP 1.1 is working fine.
    Can anyone Help???

    Yip - Acrobat or Reader Extensions are needed.
    Try right click on the PDF and open in Internet Explorer and try your submit (hopefully the domain is trusted)

  • Can any one show me how to call web service using soap lite mod perl client

    Hi,  Experts
    SAP is new for me and now I need to develop a perl client using soap lite, I have read "HOWTO: SCRIPTING LANGUAGE SUPPORT FOR SAP SERVICES - PERL" but not quit understand that. Can some one show me a real perl client example?
    I enclosed the wsdl file generated from SAP web service.
    <?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: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:element name="Z_RFC_WEBSERVICE">
    - <xsd:complexType>
      <xsd:sequence />
      </xsd:complexType>
      </xsd:element>
    - <xsd:element name="Z_RFC_WEBSERVICEResponse">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="EV_STRING" type="xsd:string" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      </xsd:schema>
      </wsdl:types>
    - <wsdl:message name="Z_RFC_WEBSERVICE">
      <wsdl:part name="parameters" element="tns:Z_RFC_WEBSERVICE" />
      </wsdl:message>
    - <wsdl:message name="Z_RFC_WEBSERVICEResponse">
      <wsdl:part name="parameters" element="tns:Z_RFC_WEBSERVICEResponse" />
      </wsdl:message>
    - <wsdl:portType name="Z_RFC_WEBSERVICE">
    - <wsdl:operation name="Z_RFC_WEBSERVICE">
      <wsdl:input message="tns:Z_RFC_WEBSERVICE" />
      <wsdl:output message="tns:Z_RFC_WEBSERVICEResponse" />
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="Z_RFC_WEBSERVICESoapBinding" type="tns:Z_RFC_WEBSERVICE">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="Z_RFC_WEBSERVICE">
      <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="Z_RFC_WEBSERVICEService">
    - <wsdl:port name="Z_RFC_WEBSERVICESoapBinding" binding="tns:Z_RFC_WEBSERVICESoapBinding">
      <soap:address location="http://darkwind:9080/sap/bc/srt/rfc/sap/Z_RFC_WEBSERVICE?sap-client=800" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
    Thanks for your help!

    now I know how to call from perl tool,
    #!/usr/bin/perl -wd
    use SOAP::Lite;
        use SOAP::Lite +trace;
       my $client = SOAP::Lite->new();
       $client->uri('urn:Z_RFC_WEBSERVICE');
       $client->on_action(sub {return'""'});
       $client->proxy('http://darkwind:9080/sap/bc/srt/rfc/sap/Z_RFC_WEBSERVICE?sap-client=800');
       my $som = $client->Z_RFC_WEBSERVICE();
       my $output = $som->result;
       print $output  "\n";
    but I got "Operation not supported" error when executing 
    my $som = $client->Z_RFC_WEBSERVICE();
    here is trace:
    SOAP::Transport::new: ()
    SOAP::Serializer::new: ()
    SOAP::Deserializer::new: ()
    SOAP::Parser::new: ()
    SOAP::Lite::new: ()
    SOAP::Transport::HTTP::Client::new: ()
    SOAP::Lite::call: ()
    SOAP::Serializer::envelope: ()
    SOAP::Serializer::envelope: Z_RFC_WEBSERVICE testtypesZ_RFC_WEBSERVICE
    SOAP::Data::new: ()
    SOAP::Data::new: ()
    SOAP::Data::new: ()
    SOAP::Data::new: ()
    SOAP::Data::new: ()
    SOAP::Transport::HTTP::Client::send_receive: HTTP::Request=HASH(0x93f14a4)
    SOAP::Transport::HTTP::Client::send_receive: POST http://darkwind:9080/sap/bc/srt/rfc/sap/Z_RFC_WEBSERVICE?sap-client=800 HTTP/1.1
    Accept: text/xml
    Accept: multipart/*
    Content-Length: 552
    Content-Type: text/xml; charset=utf-8
    SOAPAction: ""
    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><namesp1:Z_RFC_WEBSERVICE xmlns:namesp1="urn:Z_RFC_WEBSERVICE"><c-gensym3 xsi:type="xsd:string">testtypesZ_RFC_WEBSERVICE</c-gensym3></namesp1:Z_RFC_WEBSERVICE></SOAP-ENV:Body></SOAP-ENV:Envelope>
    SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x93eb288)
    SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error
    Server: SAP Web Application Server (1.0;700)
    Content-Length: 264
    Content-Type: text/xml; charset=utf-8
    Client-Date: Sat, 14 Feb 2009 19:33:50 GMT
    Client-Peer: 146.225.80.176:9080
    Client-Response-Num: 1
    Sap-Srt-Id: 20090214/113349/v1.00_final_6.40/49958133C5E634E8E100000092E150B0
    Set-Cookie: sap-usercontext=sap-client=800; path=/
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Body><soap-env:Fault><faultcode>soap-env:Client</faultcode><faultstring xml:lang="en">Operation not supported</faultstring></soap-env:Fault></soap-env:Body></soap-env:Envelope>
    SOAP::Deserializer::deserialize: ()
    SOAP::Parser::decode: ()
    SOAP::SOM::new: ()
    Can't use an undefined value as a symbol reference at ./sapClient.pl line 10.
    SOAP::Lite::DESTROY: ()
    SOAP::Deserializer::DESTROY: ()
    SOAP::Parser::DESTROY: ()
    SOAP::Transport::DESTROY: ()
    SOAP::Transport::HTTP::Client::DESTROY: ()
    SOAP::Serializer::DESTROY: ()
    SOAP::Data::DESTROY: ()
    SOAP::Data::DESTROY: ()
    SOAP::Data::DESTROY: ()
    SOAP::Data::DESTROY: ()
    SOAP::Data::DESTROY: ()
    SOAP::SOM::DESTROY: ()
    Ran SAP Web Service Navigator Test 'Z_RFC_WEBSERVICE' OK
    Can someone help?
    Thanks!

  • Calling EJB with Annotation not successfull within Netbeans

    I am trying to call EJB but my simple program can't find a ejb
    within netbeans. I also download a stub file from the admin page and add to the ejb client path. but still without the luck
    @EJB
    private static ConverterBean converterBean;
    public static void main(String[] args) {
    // TODO code application logic here
    BigDecimal param = new BigDecimal ("100.00");
    BigDecimal amount = converterBean.dollarToYen(param);
    System.out.println( amount );
    }

    Thanks for your pointer. Could you please help me out with a small code snippet example?
    I want to make use of this existing bean (AMSProfileServiceBean ):
    @WebService(targetNamespace = "http://www.ttt.de/ota")
    @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.BARE)
    // standard EJB3 annotations
    @Local(AMSAgencyWSPortType.class)
    @Stateless
    @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
    // jboss propriatary annotations
    @WebContext(transportGuarantee = "NONE", secureWSDLAccess = false)
    public class AMSProfileServiceBean extends AbstractProfileBuilder implements AMSAgencyWSPortType
      private static Log log = LogFactory.getLog(AMSMappingServiceBean.class);
      @EJB(mappedName = "PotsdamProfileService/local")
      private PotsdamProfileService profileService;
      private Security              security;
      @EJB
      private OTAProfileBuilder     otaProfileBuilder;
      @EJB
      private OTAProfileUpdater     otaProfileUpdater;
    @Override
      public OTATTProfileReadRS otaTTReadRQ(Holder<Security> wsseHeader, OTATTReadRQ request)
    ...in my soap-connector :
    @WebServiceProvider(wsdlLocation = "WEB-INF/wsdl/PotsdamAMSAgencyWS.wsdl", targetNamespace = "http://www.ttt.de/ota", serviceName = "PotsdamAMSAgencyWS", portName = "PotsdamAMSAgencyWSPortType")
    @ServiceMode(value = Service.Mode.MESSAGE)
    public class PotsdamAgencyWSProvider extends WSProvider implements Provider<SOAPMessage>
      @Resource
      WebServiceContext     wsCtx;
    ...A small example would be really appreciated.
    Thanks.

  • Call EJB from 10g

    Not familiar with EJB, hope my question makes sense.
    What are the avail. options of calling, from PL/SQL,
    Java program (EJB) that resides on NON-ORACLE app server (JBoss) ?
    thanks !
    10gR2

    Hello,
    You have 2 ways of calling an EJB from the DB:
    - EJB Call out, since it is JBoss you willl have to load the JBoss client API in the DB.
    - or expose the EJB as Web Service and call the Web Service from the DB using Web Services call out. Maybe theis approach is simpler since you do not have dependency on the EJB container and only use SOAP & HTTP protocols.
    Regards
    Tugdual Grall

  • Calling EJB method

    Hi All,
    I have never worked with EJBs so I am kind of stuck with one problem.
    I have to make use of one existing EJB project through my external standard java class. The existing EJB project makes use of some other packages which are also EJB projects and I am not allowed to change any functionality of the EJB project but to use them as it is.
    I am just initilizing the class object of the EJB project and calling its method. Within the EJB project there is a method which is calling another method of another EJB class.
    The problem is that I dont see this other EJB class object getting initilized first and then calling its method as it happens in a normal scenario, hence when that method gets called i get a null pointer execption.
    Let me give you some idea by posting some code snippet.
    @WebService(targetNamespace = "http://www.ttt.de/ota")
    @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.BARE)
    // standard EJB3 annotations
    @Local(AMSAgencyWSPortType.class)
    @Stateless
    @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
    // jboss propriatary annotations
    @WebContext(transportGuarantee = "NONE", secureWSDLAccess = false)
    public class AMSProfileServiceBean extends AbstractProfileBuilder implements AMSAgencyWSPortType
      private static Log log = LogFactory.getLog(AMSMappingServiceBean.class);
      @EJB(mappedName = "PotsdamProfileService/local")
      private PotsdamProfileService profileService;
      private Security              security;
      @EJB
      private OTAProfileBuilder     otaProfileBuilder;
    @Override
      public OTATTProfileReadRS otaTTReadRQ(Holder<Security> wsseHeader, OTATTReadRQ request)
         security = wsseHeader.value;
         BigDecimal requestVersion = request.getVersion();
         OTATTProfileReadRS otaProfileReadRS = new OTATTProfileReadRS();
         otaProfileReadRS.setVersion(requestVersion);
         PotsdamInstanceKey profileIntanceKey;
        try
          profileIntanceKey = getKeyHandler(requestVersion).buildUserKey(wsseHeader);
          PotsdamInstance userInstance = loadProfileFromPotsdam(profileIntanceKey);
    private PotsdamInstance loadProfileFromPotsdam(PotsdamInstanceKey userCredentials) throws PotsdamException
           PotsdamInstance potsdamInstance = null;
           try{
        Holder<com.ttt.potsdam.common.messages.Security> wsseHeader = buildWsseHeader(security);
        ProfileResponse potsdamInstanceRS = profileService.loadProfile(wsseHeader, userCredentials);
    ...I get an error message before the sequence reaches loadProfile(..), which in my sense is due to the fact that 'profileService' never was initilized in the EJB project.
    profileService is object of another EJB project, which looks somethign like this:
    @Stateless
    @LocalBinding(jndiBinding = "PotsdamProfileService/local")
    // jboss 4.2
    @org.jboss.annotation.ejb.LocalBinding(jndiBinding = "PotsdamProfileService/local")
    public class PotsdamProfileServiceBean implements PotsdamProfileService {
         private static Log log = LogFactory.getLog(PotsdamProfileServiceBean.class);
         @EJB
         private CacheProfileService cacheProfileService;
         @EJB(mappedName = "/PersistenceUnitsManagerBean/local")
         private PersistenceUnitsManager persistenceUnitsManager;
         @EJB
         private PotsdamService potsdamService;
         public ProfileResponse loadProfile(Holder<Security> wsseHeader,
                   PotsdamInstanceKey cacheInstanceKey) {
               log.debug("inside  loadProfile");
    ...Now I am calling the main EJB like this:
    PotsdamotaTTReadRQ();
    public OTATTProfileReadRS PotsdamotaTTReadRQ()
           AMSProfileServiceBean a = new AMSProfileServiceBean();
           Holder<Security> wsseHeader = new Holder<Security>();
           OTATTProfileReadRS response = a.otaTTReadRQ(wsseHeader, request);
           return response;
      }So my confusion is how can I make use of profileService.loadProfile(wsseHeader, userCredentials); ??
    I tried to initilize: PotsdamProfileServiceBean profileService = new PotsdamProfileServiceBean();but I get jndi binding and lots of other exception.
    Please help.
    Edited by: 925515 on 04.07.2012 06:40

    Thanks for your pointer. Could you please help me out with a small code snippet example?
    I want to make use of this existing bean (AMSProfileServiceBean ):
    @WebService(targetNamespace = "http://www.ttt.de/ota")
    @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.BARE)
    // standard EJB3 annotations
    @Local(AMSAgencyWSPortType.class)
    @Stateless
    @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
    // jboss propriatary annotations
    @WebContext(transportGuarantee = "NONE", secureWSDLAccess = false)
    public class AMSProfileServiceBean extends AbstractProfileBuilder implements AMSAgencyWSPortType
      private static Log log = LogFactory.getLog(AMSMappingServiceBean.class);
      @EJB(mappedName = "PotsdamProfileService/local")
      private PotsdamProfileService profileService;
      private Security              security;
      @EJB
      private OTAProfileBuilder     otaProfileBuilder;
      @EJB
      private OTAProfileUpdater     otaProfileUpdater;
    @Override
      public OTATTProfileReadRS otaTTReadRQ(Holder<Security> wsseHeader, OTATTReadRQ request)
    ...in my soap-connector :
    @WebServiceProvider(wsdlLocation = "WEB-INF/wsdl/PotsdamAMSAgencyWS.wsdl", targetNamespace = "http://www.ttt.de/ota", serviceName = "PotsdamAMSAgencyWS", portName = "PotsdamAMSAgencyWSPortType")
    @ServiceMode(value = Service.Mode.MESSAGE)
    public class PotsdamAgencyWSProvider extends WSProvider implements Provider<SOAPMessage>
      @Resource
      WebServiceContext     wsCtx;
    ...A small example would be really appreciated.
    Thanks.

  • Using SOAP-JMS binding for business process

    Hi all,
    We are currently designing one business process which consume MQ messages. The MQ message body is SOAP XML. SOAP Headers carry business specific important data section, so we don't want to loose these headers at any cost. The message consumer is the Websphere process choreographer business process, reading message as a JMS message. When we develop the business process, we are planning to use SOAP-JMS binding. But problem with SOAP-JMS binding is: when the MDB reads the message off the message queue, it strips off all the SOAP headers and delivers only the SOAP body. Is there a way to make this behaviour change to keep the SOAP headers? You may suggest to use JMS bindings, but JMS binding will send the message body as WSIF message (as a serialized java object). I'm not sure of how easy it is to marshalling/unmarshalling of this serialised object. My main concern is around, how to identify the "type" of the message while marshalling. Would writing our own MDB solve the problem? Again MDB's sends messages as WSIF messages to the business process EJB's, which I guess I get stumble across the same marshal/unmarshall problem. Hope I made myself clear of what i'm going trying to do. Any advice is highly appreciated.
    Regards,
    Prasad

    Hello Markus,
    I just paste my answer form the other forum entry Re: Business process management strategy in SAP?
    in a nutshell BPM Netweaver is focussing on so called edge-processes (usually
    SOA-based and often workflow related). These edge-processes a thought to enhance exisitng core business processes and should provide the fast competitive edge versus competitors. Examples would be also xApps. For this Netweaver provides process modelling tools, where you can get exectuable code through the integration between CE and PI. The monitoring part for these processes is mainly targeting business end-users and business manager.
    Business Process Monitoring with Solution Manager focusses on core business processes which are realized with the "conventional", "old" SAP Architecture, e.g. Order-to-Cash or Procure-to-Pay. You get a combination of technical monitors (average response times of transactions, background job runtimes, monitors for IDOC or qRFC processing) and application related monitors (you get more than 200 pre-configured application monitors out-of-the-box like number of overdue customer orders or outbound deliveries or number of deliveries with goods issue posted but no invoice). The target group here is the support organization of the customer, from Basis-Support over application support on IT side to process owner on business department side.
    Overview presentations can be found under
    https://service.sap.com/bpm --> Media Library --> Customer Information -->
    "Business Process Monitoring - Part 1 & 2".
    Or look under https://www.sdn.sap.com/irj/sdn/nw-processmonitoring
    In the end BPM Netweaver and BPMon SolMan are complementary for different purposes and different target groups.
    Best Regards
    Volker

  • Calling EJB 3.1 deployed in Glassfish 3.1 from  a web app in Tomcat7

    I have a EJB 3.1 bean deployed in Glassfish 3.1.1 server. I want to call this bean from a remote web client deployed in Tomcat 7. The EJB class and its remote interface is as follows ...
    Remote Interface -
    @Remote
    public interface MyEJBRemote
    public String sayHello();
    EJB Bean -
    @Stateless
    public class MyEJB implements MyEJBRemote
    public String sayHello()
    return "Hello EJB Client. Hope everything worked just fine.";
    In the remote client I have the following code
    Properties props = new Properties();
    props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
    props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
    props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
    props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
    InitialContext ic = new InitialContext(props);
    MyEJBRemote myEJBREmote = (MyEJBRemote)ic.lookup("java:global/MyEJB-1/MyEJB!com.dw.ejb.MyEJBRemote");
    Now the problem is with the last line of code. In Eclise this line of code is marked as error as the MyEJBRemote class is not there in the client project (the web app going to be deployed in tomcat 7). So where do I get the client jar generated from the deployed EJB to include in the client project ? Is there any way to generate this jar file.
    I tried using the glassfish command
    asadmin deploy generatermistubs retrieve . MyEJB.jar
    But glassfish didn't not generate any MyEJB-client.jar file. I tried a lot of times but without any success. I read up many forums. In one of them, it was mentioned that from EJB 3.1 glassfish does not generate the client stubs.
    So does that mean that one cannot use remote clients from EJB 3.1 in Glasssfish anymore ? Because the client project will never compile without the MyEJB-client.jar .

    You don't have to generate anything, you need the business interface class in your client application (MyEJBRemote in this case). One way to do that is to put the business interfaces in a separate jar and link that jar in both your client and server projects. The glassfish 3 FAQ documents the need to include the business interface class in your client application:
    http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB
    Another option is to turn the EJB into a JAX-WS webservice, which can be as easy as only adding a few annotations to it. That way you don't need any additional dependencies at all; the only thing you need to do is generate the stub classes using the wsimport tool (also part of the JDK) for your client application. I'm not a huge fan of SOAP, but for internal use I find it less cumbersome and more portable than remote EJBs.
    I can't offer any more advice on the topic as I don't use Glassfish. For better help, I do advise you to ask in the Glassfish forum where you'll find more people that have been in the same boat you are.
    http://www.java.net/forums/glassfish/glassfish

  • Should unlockPDFUsingPolicy() work using SOAP?

    The following call is exposed in EDCRightsManagement's SOAP-calls:
    BLOB unlockPDFUsingPolicy(BLOB inPDFDoc)
    Calling succeeds, but when passing the resulting Document into an
    Reader-Extension SOAP-call like:
      LCRMReaderExtensionProxy.applyUsageRights(oReaderExtBlob, . . .)
    the resulting exception claims:
    "com.adobe.livecycle.readerextensions.client.exceptions.ReaderExtensionsException: ALC-RES-001-022: The input PDF document is encrypted and needs to be unlocked for this operation."
    - Is this sequence supposed to work?
    - Could it be, that this sequence is not working using SOAP, but would work using EJB-mode?
    - How would you suggest to combine those two operations successfully, when calling from an Microsoft .NET C# world?
    Thanks, Dilettanto

    Answer:
    - yes it works, but it does not help
    When the SOAP-call returns to the caller, the server-side transaction has been terminated and the IRM-Unlock is not effective anymore.
    This means, that IRM-Unlock should be rather used within an process on serverside - then the IRM-Unlock is still effective when the next step of the process will be executed.
    Wondering though, why this call is offered as SOAP-call (when it is of no use being called from outside)
    Dilettanto

  • Error while calling ejb service call from BPM service

    Hi,
    We are using the Oracle 11.1.1.5.0
    We are calling ejb service call from BPM service to update the data to Oracle database.
    We are getting the below error when we executing the ejb service call from BPM Service.
    <Error> <EJB> <BEA-010026> <Exception occurred du
    ring commit of transaction Name=[EJB oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliver
    yBean.handleCallback(java.lang.String,java.lang.String,java.lang.String,int,bool
    ean)],Xid=BEA1-45B91984D57960994897(30845116),Status=Rolled back. [Reason=javax.
    transaction.xa.XAException: JDBC driver does not support XA, hence cannot be a p
    articipant in two-phase commit. To force this participation, set the GlobalTrans
    actionsProtocol attribute to LoggingLastResource (recommended) or EmulateTwoPhas
    eCommit for the Data Source = EBSConnection],numRepliesOwedMe=0,numRepliesOwedOt
    hers=0,seconds since begin=1,seconds left=60,XAServerResourceInfo[SOADataSource_
    base_domain]=(ServerResourceInfo[SOADataSource_base_domain]=(state=rolledback,as
    signed=soa_server1),xar=SOADataSource,re-Registered = false),XAServerResourceInf
    o[ArCnTaskForms@EBSConnection@EBSConnection_base_domain]=(ServerResourceInfo[ArC
    nTaskForms@EBSConnection@EBSConnection_base_domain]=(state=rolledback,assigned=s
    oa_server1),xar=weblogic.jdbc.wrapper.JTSEmulateXAResourceImpl@fa5476,re-Registe
    red = false),SCInfo[base_domain+soa_server1]=(state=rolledback),properties=({web
    logic.jdbc.remote.EBSConnection=t3://192.168.10.114:8001, weblogic.transaction.n
    ame=[EJB oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliveryBean.handleCallback(java.la
    ng.String,java.lang.String,java.lang.String,int,boolean)]}),local properties=({w
    eblogic.jdbc.jta.SOADataSource=[ No XAConnection is attached to this TxInfo ]}),
    OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=soa
    server1+192.168.10.114:8001+basedomain+t3+, XAResources={eis/tibjms/Queue, eis
    /activemq/Queue, WLStore_base_domain_BPMJMSFileStore, WLStore_base_domain__WLS_s
    oa_server1, eis/fioranomq/Topic, eis/jbossmq/Queue, eis/Apps/Apps, eis/websphere
    mq/Queue, eis/AQ/aqSample, WLStore_base_domain_SOAJMSFileStore, eis/aqjms/Queue,
    WSATGatewayRM_soa_server1_base_domain, eis/sunmq/Queue, eis/pramati/Queue, SSCo
    nnectionDS_base_domain, eis/tibjms/Topic, eis/tibjmsDirect/Queue, eis/wls/Queue,
    eis/tibjmsDirect/Topic, EDNDataSource_base_domain, eis/wls/Topic, eis/aqjms/Top
    ic, RL3TST_base_domain, ArCnTaskForms@EBSConnection@EBSConnection_base_domain, S
    OADataSource_base_domain, WLStore_base_domain_UMSJMSFileStore_auto_2},NonXAResou
    rces={})],CoordinatorURL=soa_server1+192.168.10.114:8001+base_domain+t3+): weblo
    gic.transaction.RollbackException: Could not prepare resource 'ArCnTaskForms@EBS
    Connection@EBSConnection_base_domain
    JDBC driver does not support XA, hence cannot be a participant in two-phase comm
    it. To force this participation, set the GlobalTransactionsProtocol attribute to
    LoggingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source
    = EBSConnection
    at weblogic.transaction.internal.TransactionImpl.throwRollbackException(
    TransactionImpl.java:1881)
    at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
    rverTransactionImpl.java:345)
    at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
    sactionImpl.java:239)
    at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocal
    Object.java:622)
    at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetr
    y(BaseLocalObject.java:455)
    at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(Sess
    ionLocalMethodInvoker.java:52)
    at oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliveryBean_of8dk6_ICubeDelivery
    LocalBeanImpl.handleCallback(Unknown Source)
    at com.collaxa.cube.engine.dispatch.message.instance.CallbackDeliveryMes
    sageHandler.handle(CallbackDeliveryMessageHandler.java:47)
    at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(Dispatc
    hHelper.java:140)
    at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatc
    hTask.java:88)
    at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTas
    k.java:64)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
    utor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
    .java:908)
    at java.lang.Thread.run(Thread.java:662)
    Caused by: javax.transaction.xa.XAException: JDBC driver does not support XA, he
    nce cannot be a participant in two-phase commit. To force this participation, se
    t the GlobalTransactionsProtocol attribute to LoggingLastResource (recommended)
    or EmulateTwoPhaseCommit for the Data Source = EBSConnection
    at weblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.jav
    a:83)
    at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
    sourceInfo.java:1327)
    at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
    sourceInfo.java:513)
    at weblogic.transaction.internal.ServerSCInfo$1.run(ServerSCInfo.java:36
    8)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
    gWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    .>
    <12 Oct, 2012 12:34:40 PM IST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-00
    0000> <failed to handle message
    javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannot
    be a participant in two-phase commit. To force this participation, set the Globa
    lTransactionsProtocol attribute to LoggingLastResource (recommended) or EmulateT
    woPhaseCommit for the Data Source = EBSConnection
    at weblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.jav
    a:83)
    at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
    sourceInfo.java:1327)
    at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
    sourceInfo.java:513)
    at weblogic.transaction.internal.ServerSCInfo$1.run(ServerSCInfo.java:36
    8)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
    gWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    >
    <12 Oct, 2012 12:34:40 PM IST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-00
    0000> <Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    error while attempting to process the message "com.collaxa.cube.engine.dispatch.
    message.instance.CallbackDeliveryMessage"; the reported exception is: Error comm
    itting transaction:; nested exception is: javax.transaction.xa.XAException: JDBC
    driver does not support XA, hence cannot be a participant in two-phase commit.
    To force this participation, set the GlobalTransactionsProtocol attribute to Log
    gingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = EB
    SConnection
    This error contained an exception thrown by the message handler.
    Check the exception trace in the log (with logging level set to debug mode).
    ORABPEL-05002
    Message handle error.
    error while attempting to process the message "com.collaxa.cube.engine.dispatch.
    message.instance.CallbackDeliveryMessage"; the reported exception is: Error comm
    itting transaction:; nested exception is: javax.transaction.xa.XAException: JDBC
    driver does not support XA, hence cannot be a participant in two-phase commit.
    To force this participation, set the GlobalTransactionsProtocol attribute to Log
    gingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = EB
    SConnection
    This error contained an exception thrown by the message handler.
    Check the exception trace in the log (with logging level set to debug mode).
    at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(Dispatc
    hHelper.java:207)
    at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatc
    hTask.java:88)
    at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTas
    k.java:64)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
    utor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
    .java:908)
    at java.lang.Thread.run(Thread.java:662)
    >
    Could any body help on this issue.It is little bit urgent for us to resolve.
    Thanks in advance.

    Thanks Sudipto Desmukh,
    The link is helpful me to resolve this issue.
    Thanks,
    Narasimha E

  • Using SOAP to access middleware webservice

    URL SOAPUrl = new URL(url);
              SOAPConnection con = SOAPConnectionFactory.newInstance().createConnection();
              ByteArrayInputStream stream = new ByteArrayInputStream(xml.getBytes());
              SOAPMessage message = MessageFactory.newInstance().createMessage(null,stream);
              SOAPMessage reply = con.call(message,SOAPUrl);I am using the above mentioned code to send a SOAP message object to a middleware webservice.
    But im getting the following exception:
    javax.xml.soap.SOAPException: org.xml.sax.SAXException: WSWS3357E: Error: operation description is missing parameter description.
         at com.ibm.ws.webservices.engine.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:115)Could anyone suggest me the reason for this and an apt solution?

    Hi Paul
    I have access to all the documents (JavaScript via Mozilla, Adobe JavaScript API, XFA API etc etc) but none are specific enough to cater for this issue.  I will work this out before too long but it would be very useful if someone who had done this already could shortcut my journey!
    Thanks
    Roxy

Maybe you are looking for

  • How to block unchecking of a check box in a JTable

    i have a JTable. Its 1st column is a check box. i want for the first two rows user can not de-select the check box. How i will do it ?

  • Macbook heating issues

    I experienced where my macbook pro with retina get overally hot underneath and on the od occassions this sound of air gushing out occures as if it cooling it down, anyone else experienced this? wrong title corrected

  • Firefox mac osx version does not support mac-Lion os full screen window mode. When will you bring this?

    In macbook pro with lion os apple gives a full-screen-mode icon in the top right corner of the window, which will be used to open that view in different window. But firefox does not support this. Even chrome supports it. When will you bring this feat

  • Couldn't draw a custom UI in PF_Window_LAYER

    Now im developing a custom UI plugin. I would like to draw a red circle or green rectangle in a layer window as a custom control for manipulation of my objects. There is no problem to draw a custom UI in a composition window (w_type == PF_Window_COMP

  • Locking down HFM Workspace menu options.

    How do you suggest stopping end users from seeing the Administration drop down menu ? The menu that allows to see what end users are in the system. I would like the whole list blocked. I tried Shared services but it is not obvious. Thanks