Webservice API call

I have been trying to make Webservice call to "https://webservice.exacttarget.com/etframework.wsdl" using coldfusion server 9.0 without much success. My code recognizes WSDL and it methods but When I call method it throws following error:
Web service operation Describe with parameters {{DESCRIBEREQUESTS={[Lcom.et.client.ObjectDefinitionRequest;@78b0e1}}} cannot be found.
Please suggest.....
MyCode CFM file code:
Package Class: "com.et.client"
    <cffunction name="head1" access="private" returntype="Any" output="false"
                hint="Return the header needed to make an Omniture web service request as a SOAPHeaderElement object">
        <cfargument name="strUsername" type="String" required="true" />
        <cfargument name="strSecret" type="String" required="true" />
            // Unique random number
            var strNonce = createUUID();
            var strCreated  = DateFormat(Now(),'YYYY-mm-dd H:mm:ss');
            var strPassword = arguments.strSecret;
            // Start to build header
            var objHeader = CreateObject("java", "org.apache.axis.message.SOAPHeaderElement");
            var nodeUserToken = "";
            var nodePassword = "";
            // Construct XML structure with code
            objHeader.init("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "wsse:Security");
            nodeUserToken = objHeader.addChildElement("wsse:UsernameToken");
            nodeUserToken.setAttribute("wsu:Id", "User");
            nodePassword = nodeUserToken.addChildElement("wsse:Password");
            nodePassword.setAttribute("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0##Passwo rdText");
        <cfreturn objHeader />
        objHeader = head1("test", "[email protected]");
        objService = CreateObject("webservice", "https://webservice.exacttarget.com/etframework.wsdl");
                                definitionRequest =  createObject("java", "com.et.client.ObjectDefinitionRequest").init();
                                DefinitionRequestMsg  = StructNew();                               
                                defre = arraynew(1);
                                defre[1] =definitionRequest;
                                DefinitionRequestMsg.DescribeRequests = JavaCast("com.et.client.ObjectDefinitionRequest[]",defre);
SubKey ::: <cfdump var="#sub.SubscriberKey#">
Type ::: <cfdump var="#definitionRequest.getObjectType()#">
DefinitionRequestMsg ::: <cfdump var="#DefinitionRequestMsg.DescribeRequests[1].ObjectType#">
Methods ::: <cfdump var="#objService#">
resp = getSOAPResponse(objService);
SubKey :::   Jon_Doe 
Type :::   Account
DefinitionRequestMsg :::   Account
Methods ::: 
object of com.exacttarget.wsdl.partnerAPI.SoapBindingStub
Class Name
Return Type
java.lang.String PASSWORD_PROPERTY
java.lang.String USERNAME_PROPERTY
Parent Class
The web site you are accessing has experienced an unexpected error.
Please contact the website administrator.
The following information is meant for the website developer for debugging purposes.
Error Occurred While Processing Request
Web service operation Describe with parameters {{DESCRIBEREQUESTS={[Lcom.et.client.ObjectDefinitionRequest;@78b0e1}}} cannot be found.
The error occurred in /Users/bgogineni/ColdFusion/wwwroot/ET/index2.cfm: line 84
82 : <br/> 83 : <cfscript>
84 :  objService.Describe(DefinitionRequestMsg); 85 :  resp = getSOAPResponse(objService); 86 :
Check the ColdFusion documentation to verify that you are using the correct syntax.
Search the Knowledge Base to find a solution to your problem.
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv: Gecko/20100315 Firefox/3.5.9
Remote Address
13-May-10 10:27 PM
Stack Trace
at cfindex22ecfm949006999.runPage(/Users/bgogineni/ColdFusion/wwwroot/ET/index2.cfm:84)                  
coldfusion.xml.rpc.ServiceProxy$ServiceMethodNotFoundException: Web service operation Describe with parameters {{DESCRIBEREQUESTS={[Lcom.et.client.ObjectDefinitionRequest;@78b0e1}}} cannot be found. at coldfusion.xml.rpc.ServiceProxy.invokeImpl(ServiceProxy.java:256) at coldfusion.xml.rpc.ServiceProxy.invoke(ServiceProxy.java:154) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2360) at cfindex22ecfm949006999.runPage(/Users/bgogineni/ColdFusion/wwwroot/ET/index2.cfm:84) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:363) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:87) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:53) at coldfusion.CfmServlet.service(CfmServlet.java:200) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at jrun.servlet.FilterChain.service(FilterChain.java:101) at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172) at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
Debugging Information
ColdFusion Server Enterprise
Time Stamp
13-May-10 10:27 PM
English (US)
User Agent
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv: Gecko/20100315 Firefox/3.5.9
Remote IP
Host Name
Execution Time  
Total Time
Avg Time
15 ms
15 ms
14 ms
29 ms
red = over 250 ms average execution time   
22:27:34.034 - Application Exception - in /Users/bgogineni/ColdFusion/wwwroot/ET/index2.cfm : line 84
    Web service operation Describe with parameters {{DESCRIBEREQUESTS={[Lcom.et.client.ObjectDefinitionRequest;@78b0e1}}} cannot be found.    

We do a lot of work with web service APIs using coldfusion.  A while ago, we decided it was much easier (especially when dealing with complex web service invocations) to switch to posting/receiving the raw XML SOAP messages in order to exchange data with the remote web service.  Ben Nadel has a great article that outlines what is involved:
http://www.bennadel.com/blog/1809-Making-SOAP-Web-Service-Requests-With-ColdFusion-And-CFH TTP.htm
What's more, you can use a lot of free/OSS tools to generate a template for the Request/Response SOAP messages, so it really just winds up being a matter of creating your XML in a cfsavecontent block and adding your variables in place of the sample text.  We use SOAPSonar from Crosscheck networks (http://www.crosschecknet.com/products/soapsonar.php) - they have a free "personal" edition that will parse a WSDL and generate the resulting XML SOAP messages that you can use as a template.
The only major issue is you have to watch out for the XML namespaces in the response that comes back from the web service.  ColdFusion (not surprisingly) has a major issue with extracting data using XMLSearch() from an XML node that includes a name space.  There are a couple of work-arounds - you could use a local-name() xpath method to perform a namespace-agnostic search, or you could use regular expressions to just strip all the namespace data out of the XML and parse using ColdFusion.
Anyway, the implementation winds up looking something like this:
<!--- build Soap XML --->
<cfsavecontent variable="sSOAPBody">
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<!--- Send SOAP data using CFHTTP --->
<cfhttp url="URL of Web service (e.g. .asmx, .cfc - no WSDL)" method="post">
<cfhttpparam type="header" name="SOAPAction" value="http://target_namespace_goes_here/method">
<cfhttpparam type="header" name="accept-encoding" value="no-compression">
<cfhttpparam type="xml" value="#trim(sSOAPBody)#">
<!--- Parse XML Response in CFHTTP.FileContent --->

Similar Messages

  • URL Escaping when calling Webservices API Changed?

    It seems that something has changed recently with the Adobe Connect Webservices API. In the past, when I would call 'principal-update' to create or update a user, I would sanitize all my strings using urlencode() in PHP, which takes any non-alphanumeric characters (or dashes and underscores) and "percent encodes" them. For example, a "@" character in an email address becomes "%40".
    This is important especially in the case that a string contains an ampersand (&) or question mark (?) since those characters are used to pass the parameters themselves in the URL string.
    This has always worked fine until I noticed a few days ago it was no longer working.
    If I attempt to create a user with an email address formatted with the "%40", Connect now comes back with an error message saying it wasn't formatted properly. Removing the encoding fixes the problem.
    However, this is NOT best practice. And especially for passwords, which could theoretically contain ampersands and question marks, you cannot simply pass the raw string in the URL as it will create a malformed URL.
    Has anyone noticed this, and does Adobe know about it? Seems like a major problem, and means I will have to prevent users from using these special characters in their passwords until this is fixed.

    Thanks for the posting. I suggest you should call this into Support as a bug. It's possible that they changed something that affected this without seeing the ramifications.

  • Error when calling getAllServerPools() using WebService API

    I try to get All the Server Pool created on my Oracle VM Manager with the WebService API, but i'm get an error.
    Here is the code (I used the wsimport to create proxy class Oracle VM 2.2.0):
    - 1.Get "AdminService Webservice" --> OK
    private AdminService_Service adminServiceService=null;
    private AdminService adminService=null;
    this.adminServiceService=new AdminService_Service(new URL(url + WS.CONTEXT_PATH +WS.ADMINSERVICEWS),new QName(WS.QNAME, WS.ADMINSERVICE));
    catch (MalformedURLException e)
    // TODO Auto-generated catch block
    bindProvider = (BindingProvider) this.adminService;
    requestContext = bindProvider.getRequestContext();
    requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, new Boolean(true));
    requestContext.put(BindingProvider.USERNAME_PROPERTY, userName);
    requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);
    - 2. Login to OracleVM Manager with an administrator user account--> OK
    LoginElement loginElmnt=new LoginElement();
    LoginResponseElement res=this.adminService.login(loginElmnt);
    String loginToken=res.getResult();
    --> Admin Session token: 510175389-1257996206446
    -3. Get the "ServerPoolService Webserice" --> OK
    private ServerPoolService serverPoolService=null;
    private ServerPoolService_Service serverPoolSrvService=null;
    this.serverPoolSrvService=new ServerPoolService_Service(new URL(url + WS.CONTEXT_PATH +WS.SERVERPOOLSERVICEWS),new QName(WS.QNAME, WS.SERVERPOOLSERVICE));
    catch (MalformedURLException e)
    // TODO Auto-generated catch block
    bindProvider = (BindingProvider) this.serverPoolService;
    requestContext = bindProvider.getRequestContext();
    requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, new Boolean(true));
    requestContext.put(BindingProvider.USERNAME_PROPERTY, userName);
    requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);
    -4. Get the AllServerPool --> KO
    GetAllServerPoolsElement getAllServerPool=new GetAllServerPoolsElement();
    GetAllServerPoolsResponseElement getAllserverPoolResp=null;
    ServerPool serverPool=new ServerPool();
    List<ServerPool> serverPoolArr=new ArrayList<ServerPool>();
    i have the java.lang.NullPointerException when calling:
    What is the problem ?
    Thanks in advance,

    just a silly bug....

  • Call Webservice/API during browser close event

    I am using JDEV 11g. My application catches the browser close event to call a return Task Flow.
    I am wondering if its possible to call a webservice/API during the same event.

    Probababy too late to ask .. did u manage to get this resolved.
    I am not able to call any server Listeners during browser close event ...
    Details here -Re: Calling an ActionListener on browser window close using JS event queuing

  • Data Loader API Calls x Webservices

    I'm trying to use the Data Loader calls by the webservices.
    I've downloaded the OracleDataLoaderOnDemandImportServices.wsdl and I've been tested it in a C# project, but I don't know to use exactly the methods BulkOpImportCreateRequest and BulkOpImportSendData.
    I can't create a import bulk request...
    Has someone already used this before?
    Help me, please?
    Best regards,

    TheSilverHammer wrote:
    Thats some nice info, but what if it is not a "framework"? These are basic Darwin API calls, not Apple Frameworks.
    Last sentence on the page:
    "If you need to link to a library instead of a framework, you can use the -weak_library linker command instead of -weak_framework."
    TheSilverHammer wrote:
    I did not define printf so I can't weak link it.
    This doesn't make any sense. You didn't define any of the symbols in any of the frameworks or libraries Apple provides--that does not inhibit your ability to link against them, weakly or otherwise.

  • How to create a user in Opensso Identity Service Webservices api?

    Hi All,
    I am getting struck with the creation of user in OpenSSO through the webservices api they are providing.
    I used the following wsdl link to create the API's. http://localhost:8080/opensso/identityservices?WSDL
    Now my requirement is, i have to create a user profile through the program which has the api create(identity,admin) created by the WSDL link.
    Here identity is the com.sun.idsvcs.IdentityDetails and admin is the com.sun.idsvcs.Token. I want to append givenName,cn,sn,userPassword in that. But dont have any idea how to given these details in IdentityDetails. If anyone give any sample solution i can follow.
    Any Help Greatly Appreciated.
    Thanks in Advance.
    With Regards,

    Hey, I've managed to implement OpenSSO user registration through SOAP.
    My code is:
    package ru.vostrets.service.implementation.helper.opensso;
    import ru.vostrets.model.person.Person;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import ru.vostrets.dao.PropertiesDao;
    import ru.vostrets.exception.FatalError;
    import com.sun.identity.idsvcs.opensso.*;
    import java.util.HashMap;
    import java.util.Map;
    import org.slf4j.LoggerFactory;
    import org.slf4j.Logger;
    import ru.vostrets.exception.ConfigurationError;
    * @author Kuchumov Nikolay
    * email: [email protected]
    public class OpenSsoPersonServiceHelper
         private enum AttributeName
              private final String name;
              AttributeName(String name)
                   this.name = name;
              public String getName()
                   return name;
         private static final Logger LOG = LoggerFactory.getLogger(OpenSsoPersonServiceHelper.class);
         private PropertiesDao propertiesDao;
         public void create(Person person)
                   IdentityServicesImplService service = new IdentityServicesImplService();
                   IdentityServicesImpl servicePort = service.getIdentityServicesImplPort();
                   java.util.List<java.lang.String> attributeNames = null;
                   Token subject = new Token();
                   UserDetails results = servicePort.attributes(attributeNames, subject);
                   for (Attribute attribute : results.getAttributes())
                        LOG.info("************ Attribute: Name = " + attribute.getName() + ", Values = " + attribute.getValues());
                   LOG.info("Roles = " + results.getRoles());
                   IdentityDetails identity = newIdentity
                    * Creates an identity object with the specified attributes.
                    * @param admin Token identifying the administrator to be used to authorize
                    * the request.
                    * @param identity object containing the attributes of the object
                    * to be created.
                    * @throws NeedMoreCredentials when more credentials are required for
                    * authorization.
                    * @throws DuplicateObject if an object matching the name, type and
                    * realm already exists.
                    * @throws TokenExpired when subject's token has expired.
                    * @throws GeneralFailure on other errors.
              catch (DuplicateObject_Exception exception)
                   throw new UserAlreadyExistsError();
              catch (Exception exception)
                   throw new FatalError(exception);
         private Token authenticateAdministrator()
                   IdentityServicesImplService service = new IdentityServicesImplService();
                   IdentityServicesImpl servicePort = service.getIdentityServicesImplPort();
                   if (propertiesDao.get().getAuthentication().getOpenSso().getAdministrator().getUserName() == null
                             || propertiesDao.get().getAuthentication().getOpenSso().getAdministrator().getPassWord() == null)
                        throw new ConfigurationError("OpenSSO administration properties not initialized");
                    * Attempt to authenticate using simple user/password credentials.
                    * @param username Subject's user name.
                    * @param password Subject's password
                    * @param uri Subject's context such as module, organization, etc.
                    * @return Subject's token if authenticated.
                    * @throws UserNotFound if user not found.
                    * @throws InvalidPassword if password is invalid.
                    * @throws NeedMoreCredentials if additional credentials are needed for
                    * authentication.
                    * @throws InvalidCredentials if credentials are invalid.
                    * @throws GeneralFailure on other errors.
                   Token token = servicePort.authenticate
                   LOG.info("******************************** Admin token: " + token.getId());
                   return token;
              catch (Exception exception)
                   throw new FatalError(exception);
              com.sun.identity.idsvcs.opensso.IdentityServicesImplService service = new com.sun.identity.idsvcs.opensso.IdentityServicesImplService();
              QName portQName = new QName("http://opensso.idsvcs.identity.sun.com/" , "IdentityServicesImplPort");
              String request = "<authenticate  xmlns=\"http://opensso.idsvcs.identity.sun.com/\"><username>ENTER VALUE</username><password>ENTER VALUE</password><uri>ENTER VALUE</uri></authenticate>";
                   // Call Web Service Operation
                   Dispatch<Source> sourceDispatch = null;
                   sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
                   Source result = sourceDispatch.invoke(new StreamSource(new StringReader(request)));
              catch (Exception exception)
                   // TODO handle custom exceptions here
         private Attribute newAttribute(AttributeName name, Object value)
              Attribute attribute = new Attribute();
              return attribute;
         private Map<AttributeName, Object> fillAttributes(Map<AttributeName, Object> attributes, Person person)
              attributes.put(AttributeName.USER_NAME, person.getCredentials().getUserName());
              attributes.put(AttributeName.PASS_WORD, person.getCredentials().getPassWord());
              attributes.put(AttributeName.GIVEN_NAME, person.getPersonal().getGivenName());
              attributes.put(AttributeName.FAMILY_NAME, person.getPersonal().getFamilyName());
              attributes.put(AttributeName.FULL_NAME, person);
              attributes.put(AttributeName.EMAIL, person.getContacts().getEmail());
              return attributes;
         private Map<AttributeName, Object> getAttributes(Person person)
              return fillAttributes(new HashMap<AttributeName, Object>(), person);
         private IdentityDetails newIdentity(Object name, Map<AttributeName, Object> attributes)
              IdentityDetails identity = new IdentityDetails();
              return fillAttributes(identity, attributes);
         private IdentityDetails fillAttributes(IdentityDetails identity, Map<AttributeName, Object> rawAttributes)
              for (Map.Entry<AttributeName, Object> rawAttribute : rawAttributes.entrySet())
                             newAttribute(rawAttribute.getKey(), rawAttribute.getValue()));
              return identity;
         public void setPropertiesDao(PropertiesDao propertiesDao)
              this.propertiesDao = propertiesDao;

  • ORA-28750 Unknown Error while trying to execute an external app's API call?

    New to using web services in PLSQL
    Database: Oracle Database 10g Enterprise Edition Release - 64bi
    PL/SQL Release - Production
    CORE Production
    TNS for Linux IA64: Version - Production
    NLSRTL Version - Production
    App Server:
    RedHat ES 3.0 and Oracle Application Server 9.0.4 (IAS release 1)
    We are designing a plsql application, that is able to call an external application's webservice APIs. We have created an oracle wallet for this, where we have successfully imported the corrrect security certificate issued by the API provider.
    All we are trying to do is to call one of the methods (LOGIN), which should login the provided user into the application and should return a valid session id. For this, I have a function, http_request, which first establishes the request to the URI. The code is failing at this call, with following error:
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1029
    ORA-28750: unknown error
    I could not find more information on ORA-28750..?
    Here is the function cal, in our application package:
    FUNCTION http_request(
    p_uri IN VARCHAR2,
    p_method IN VARCHAR2 DEFAULT 'GET',
    p_http_version IN VARCHAR2 DEFAULT NULL
    v_request UTL_HTTP.req;
    v_request := UTL_HTTP.begin_request(p_uri, p_method, p_http_version);
    IF v_session_id IS NOT NULL THEN
    UTL_HTTP.set_header(v_request, 'SessionID', v_session_id);
    END IF;
    RETURN v_request;
    END http_request;
    Here is my anonymous block, where I tested the function with the URI parameters
    v_request UTL_HTTP.req;
    UTL_HTTP.set_wallet('file:/etc/ORACLE/WALLETS/attask', '<pwdforattask>');
    v_request := pkg_attask_api.http_request('https://streamsandbox.attask-ondemand.com/attask/api/login?username=<valid_user_name>&password=<valid_pwd>','GET',NULL);
    Please note that user name and passwords used for the above test have been tested to be correct. When I login to web interface of the URL, these values work fine.
    Any help is appreciated as I am close to hitting the wall on this!
    Thanks for your time and expertise,

    28750, 00000, "unknown error"
    // *Cause:   An Oracle Security Server error of an unspecified type occurred.
    // *Action:  Enable tracing to determine the exact cause of this error.
    //           Contact Oracle customer support if needed.

  • BPM 11g: JAVA API and Webservice API

    Who knows BPM 11g: JAVA API and Webservice API?
    Customer want to call BPM 11g between Heterogeneous systems, such .net framework. One way is use webservice API, I think, but where can find it? thank you

    When you create a BPM application in 11g, you're actually creating a SOA composite application with a BPMN component in the composite. From within the BPMN editor, you can specify the interface (parameters) of each start node in the process. If you select a start node, look at the implementation tab, you'll see a properties group that lets you define the interface one property at a time, or by selecting an interface from the catalog.
    By defining these properties you're also defining the shape of the Web Service interface that will automatically be created in the composite. If you switch to the composite view, you'll see your BPMN process with a wire to it from a Web Service that's generated from the interface defined in the BPMN editor. The naming convention is the BPMN process name with ".service" appended. When you deploy the BPMN process, the web service will also be deployed, since it's also part of the composite. From Enterprise Manager (EM) you can test the service and get the WSDL, which could be used by other applications (e.g. .NET) to start and interact with a process instance.
    This is one of the advantages of the 11g architecture. The composite exposes services to consumers/clients. The implementation could have been BPEL, BPMN, a Mediator, Java/EJBs, or any combination working together. To the consumer, it's just a web service.
    In case your next question was about security ... you won't see properties about security in the BPMN editor. You use Web Service Manager to apply security or other constraints to the web service endpoint.

  • XI AF API call failed. Module exception: Java Mapping

    Hi Experts,
    I have faced a typical error for one of my interface. The Scenario is SOAP to SOAP and we are performing SOAP Lookup  before sending the data to Target web service. We are using one Java Mapping  'FileIns_lookupLoad.java --- com/fi/' and performing the SOAP Lookup from within the code. In the Lookup Communication channel we are using 'Axis' as message protocol and passing couple of values through Module Key parameters. We have same ESR and ID objects in Development, Quality and Production (as per Version ID and History).
    Now the problem is Lookup is failing only in Development but Quality and Production is working fine. I have replaced Quality CC URL with the development WSDL URL, but that worked fine. That means Development Web Service is good. We are getting the below error in Dev:
    <SAP:Stack>StreamTransformationException triggered by application mapping program com/fi/FileIns_lookupLoad; Look Up Failed</SAP:Stack>
    Trace : *
    <Trace level="1"
    type="T"> Some Thing Wrong in LookUpError when calling an adapter by using the communication channel CC_IN_SOAP_GEInsuranceLoadLookup1 (Party: , Service: BusService_GE, Object ID: 4214805c52893ef9b0b3f0ef0902fe9e) XI AF API call failed. Module exception: 'while trying to invoke the method org.apache.axis.types.URI.toString() of an object returned from com.sap.xi.XI.Message._30.QualifiedName.getNamespace()'. Cause Exception: 'while trying to invoke the method org.apache.axis.types.URI.toString() of an object returned from com.sap.xi.XI.Message._30.QualifiedName.getNamespace()'. </Trace>
      <Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
      <Trace level="1" type="T">Java mapping com/fi/FileIns_lookupLoad has thrown a StreamTransformationException. Thrown: com.sap.aii.mapping.api.StreamTransformationException: Look Up Failed at com.fi.FileIns_lookupLoad.execute(FileIns_lookupLoad.java:282) at com.fi.FileIns_lookupLoad.transform(FileIns_lookupLoad.java:74) at com.sap.aii.ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:92) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.SequenceMapping.executeStep.................................................
    ................................................................................<Trace level="1" type="T">Application mapping program com/fi/FileIns_lookupLoad throws a stream transformation exception: Look Up Failed Thrown: com.sap.aii.ib.core.mapping.execution.ApplicationException: Application mapping program com/fi/FileIns_lookupLoad throws a stream transformation exception: Look Up Failed at com.sap.aii.ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:95) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.SequenceMapping.executeStep(SequenceMapping.java:40) at com.sap.aii.ib.server.mapping.execution.Mapping.execute
    I have already checked with Basis and as per them JDK and Java versions are identical in Dev, QAS and Prod. It seems something is wrong with 'XI AF API' which we are calling from the channel. If we totally ignore Lookup process and send direct data, it is working fine. Target CC is also using Axis.
    Sequence in CC: afreq ->xireq ->wssec2 ->xires ->afres
    For any more information please let me know.

    Hi Anupam,
    The Java Mapping code is same in Dev , QAS and Prod. Also the versions of the JAR is same.
    Please find the code below.
    package com.fi;
    import java.util.HashMap;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.api.AbstractTransformation;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.MappingTrace;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import com.sap.aii.mapping.api.DynamicConfiguration;
    import com.sap.aii.mapping.api.DynamicConfigurationKey;
    import com.sap.aii.mapping.api.TransformationInput;
    import com.sap.aii.mapping.api.TransformationOutput;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.*;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.*;
    import org.w3c.dom.views.AbstractView;
    import org.xml.sax.SAXException;
    import java.io.ByteArrayInputStream;
    import com.sap.aii.mapping.lookup.*;
    /*import com.sap.aii.utilxi.hmis.server.HmisEnvironment.Accessor;
    //import com.sap.aii.utilxi.lock.api.LockServiceException;
    //import com.pmintl.pppimes.RFCLookup.javamapping.*;
    //import java.io.FileInputStream;
    //import java.io.FileOutputStream;*/
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    //import java.text.ParseException;
    import java.util.Date;
    import java.io.*;
    public class FileIns_lookupLoad extends AbstractTransformation{
            private Map param = null;
            private AbstractTrace trace = getTrace();
            String senderService = null;
           String inParamChannel = null;
           String inParamBusService = null;
              //3. Each JAVA Mapping using program 7.1 API must implement the method
              // transform(TransformationInput in, TransformationOutput out)
              // as oppose to execute Method in earlier version.
               public void transform(TransformationInput arg0, TransformationOutput arg1) throws StreamTransformationException {
              // TODO Auto-generated method stub
              //4. An info message is added to trace. An instance of trace of object is obtained by calling
              // the getTrace method of class AbstractTransformation
                    inParamChannel = arg0.getInputParameters().getString("COMM_CHANNEL");
                    inParamBusService = arg0.getInputParameters().getString("BUS_SERVICE");
                    getTrace().addInfo("Input Parameter: " + inParamChannel);
                    getTrace().addInfo("Input Parameter: " + inParamBusService);
              //5. Input payload is obtained by using arg0.getInputPayload().getInputStream()
          * @param args
         public static void main(String[] args) {
                // TODO Auto-generated method stub
         public void execute(InputStream in, OutputStream out)
                   throws StreamTransformationException {
              // TODO Auto-generated method stub
                   //Get The Trace
    //               trace = (AbstractTrace)param.get(StreamTransformationConstants.MAPPING_TRACE );
                   trace = getTrace();
                  getTrace().addInfo("Java Mapping Started");
                   DocumentBuilderFactory ifactory = DocumentBuilderFactory.newInstance();
                   DocumentBuilder ibuilder = ifactory.newDocumentBuilder();
                   Document IDoc  = ibuilder.parse(in);
                   Document TDoc = ibuilder.newDocument();
                   String mrnVal = "";
                   trace.addInfo("Preparing Target Doc");
                   Element message = TDoc.createElementNS("urn:Medtronic.com:CATS_Patient_Transactions","n1:Mt_Insurance");
                   Node tRoot = TDoc.appendChild(message);
                   Element sRoot = (Element)IDoc.getFirstChild();
                   NodeList nl = sRoot.getChildNodes();
               // trace.addInfo("Len"+nl.getLength());
    ////               for(int i=0;i<nl.getLength();i++)
    //                    Node n1 = TDoc.importNode(nl.item(i), true);
    //                    trace.addInfo("Adding Child Nodes");
    //                    trace.addInfo(nl.item(i).getNodeName());
    //                    tRoot.appendChild(n1);
                   NodeList lmrn = sRoot.getElementsByTagName("Mrn");
                   if(lmrn != null)
                        Node n1 = TDoc.importNode(lmrn.item(0), true);
                        Element e1 = (Element)lmrn.item(0);
                        mrnVal = e1.getTextContent();
                   NodeList lfsc = sRoot.getElementsByTagName("Fsc");
                   if(lfsc != null)
                        for(int i=0;i<lfsc.getLength();i++){
                             Element n1=TDoc.createElement(lfsc.item(i).getNodeName());
                             Node fieldch = TDoc.createElement("Fields");
                             NodeList chl = lfsc.item(i).getChildNodes();
                             for(int j=0;j<chl.getLength();j++){
                                       Element fscfield = TDoc.createElement("FSCField");
                                       NodeList FUQl = chl.item(j).getChildNodes();
                                       for(int p =0;p<FUQl.getLength();p++){
                                            //trace.addInfo(" i: "+i+" J: "+j+" P: "+p);
                                                 //Node tFUQ = TDoc.createElement("FUQNumber");
                                                 fscfield.setAttribute("FUQNumber", FUQl.item(p).getTextContent());
                                                 Node tVal = TDoc.createElement("Value");
                                                 //Node tName = TDoc.createElement("Field");
                                                 fscfield.setAttribute("Field", chl.item(j).getNodeName());
    //                                   Node fuqch = chl.item(j).getFirstChild();
    //                                   Node valch = fuqch.getNextSibling();
    //                                   if(fuqch!=null){
    //                                        Node tFUQ = TDoc.createElement("FUQNumber");
    //                                        tFUQ.setTextContent(fuqch.getTextContent());
    //                                        fscfield.appendChild(tFUQ);
    //                                   if(valch!=null){
    //                                        Node tVal = TDoc.createElement("Value");
    //                                        tVal.setTextContent(valch.getTextContent());
    //                                        fscfield.appendChild(tVal);
    //                                        Node tName = TDoc.createElement("Filed");
    //                                        tName.setTextContent(chl.item(j).getNodeName());
    //                                        fscfield.appendChild(tName);
                                       //Node numch =TDoc.importNode(chl.item(j), true);
                                       //Element e1 =(Element)n1;
                                            n1.setAttribute("Number", chl.item(j).getTextContent());
                                            n1.setAttribute("Priority", chl.item(j).getTextContent());
    //                         Element e1 = (Element)lfsc.item(0);
    //                         trace.addInfo(e1.getNodeName());
    //                         mrnVal = e1.getNodeValue();
    /////Start of Look Up Code////
                   //Preparing Input String
                   String lookUpRequest = "<LoadPatientFullInsuranceDetail><Mrn>"+mrnVal+"</Mrn></LoadPatientFullInsuranceDetail>";
                        SystemAccessor acc;
                        Channel channel;
                        Payload lookupResult;     
                             channel = LookupService.getChannel(inParamBusService, inParamChannel);
                             trace.addInfo("Got the channel");
                             acc = LookupService.getSystemAccessor(channel);
                             trace.addInfo("Got The Channel and Accessor");
                             InputStream ist = new ByteArrayInputStream(lookUpRequest.getBytes());
                             XmlPayload payload = LookupService.getXmlPayload(ist);
                             if(acc != null){
                                  trace.addInfo("Got The Channel and Accessor");
                                  trace.addInfo("Executing The Webservice");
                                  lookupResult = acc.call(payload);
                                  trace.addInfo("End of Executing The Webservice");
                                  trace.addInfo("Responce is not null");
                                  InputStream rist = lookupResult.getContent();
                                  Document lresDoc = ibuilder.parse(rist);
                                  Node n1 = lresDoc.getFirstChild();
                                       Node ch1 = n1.getFirstChild();
                                       NodeList lookupnl = ch1.getChildNodes();
                                       for(int i=0;i<lookupnl.getLength();i++)
                                            Node n2 = TDoc.importNode(lookupnl.item(i), true);
                                            trace.addInfo("Adding Child Nodes");
                                  throw new StreamTransformationException("Error in Look Up"+n1.getTextContent());
                                   //while(ch1.hasChildNodes() && !ch1.getNodeName().equals("FSCS")){
                                  trace.addWarning("Responce is null");
                                 throw new LookupException();
                        catch(LookupException le)
                             trace.addWarning("Some Thing Wrong in LookUp"+le.getMessage());
                             throw new StreamTransformationException("Look Up Failed");                         
                           Transformer transformer = TransformerFactory.newInstance().newTransformer();
    //                       StreamResult reqResult = new StreamResult(new StringWriter());
                           DOMSource source = new DOMSource(TDoc);
                           Result result = new StreamResult(out);
              catch(StreamTransformationException ste)
               throw new StreamTransformationException(ste.getMessage());
              catch(Exception e){

  • XI 3.1 Webservices API: Read time out during getDocumentInformation()

    my client is moving vom BO 6.5 to BO XI 3.1. The client uses BO to create mass reports for indivual subscribers in a batch mode fashion. We are currently evaluating the Webservices API, dealing with Desktop Intelligence reports.
    I have implemented a load test prototype using the Webservices API with the help of the examples found here.
    Retrieving a single report works fine, but when I try to put some load on the server and request reports with several parallel threads, I get the "Read timeout error" when calling getDocumentInformation(repID, null, actions, null, boRetrieveData). The actions array just contains the FillPrompts instance.
    2008-12-05 11:05:07,448 INFO  (test-5    ) [HTTPSender                    ]   Unable to sendViaPost to url[http://bojv01:8080/dswsbobje/services/ReportEngine]
    java.net.SocketTimeoutException: Read timed out
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
         at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)
         at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)
         at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)
         at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1373)
         at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)
         at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)
         at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)
         at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
         at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
         at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
         at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
         at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:520)
         at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:191)
         at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77)
         at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327)
         at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206)
         at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
         at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
         at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
         at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
         at com.businessobjects.dsws.reportengine.ReportEngine.getDocumentInformation(Unknown Source)
    BTW, the threads use different logins and in consequence different connections/sessions.
    The timeout occurs after 30secs, so simple reports with no prompts are created without error. Increasing the timeout on the connection as suggested in other postings did not help.
    I think the issue is related to Axis2. I don't know how to set the timeout on the Axis client via the BO API. Trying to recreate the client API from the WSDL did not work. Is there any example how to do this correctly? Having the source of the Axis client, one would have the chance to set the timeout on the client programmatically ...
    Any help would be greatly appreciated,

    I found a workaround for the issue by patching and compiling the Axis2 kernel library. You need to download it form Apache, install Maven 2.0.7, set the default timeout in .../client/Options.java to a value that suits your needs (for me: 20min), and compile the whole thing using mvn clean install.
    But this is obviously not the solution one wants. So, is there anybody with a REAL answer to the problem?

  • 2008.2 Webservice API

    2008.2 Webservice API
    We got the approval working via the Req Approval Webservice in 2008.2.  Othan this code, you need to add the user that is used in the call to Role of
    ‘WebServices Integrator’ in the Administration Module. This example uses SSO integration with the HTTP Header.

    We migrated from 2006.0.2 to 2007.1.3 back in Feb. This required an interim upgrade to 2006.0.7, which you shouldn't have to do. Then, because of business needs, we went ahead and upgraded to 2008.2. The 2008.2 was much easier from a newScale perspective, though we also upgraded to Weblogic 10.3.
    Feel free to shoot me an email for more details.
    [email protected]

  • Get chat transcript over the WebServices API for CCA?

    When using the WebServices API against the CCA (Contact Center Anywhere) there is this method called:
    IInteractions.getHistory(String sessionId, String sInteractionId)
    where some sort of event history can be retrieved.
    But how can I find the actual chat messages for that interaction?
    Or are they only sent to the FTP server?

    http://[the URL of your server]/cca/doc/cca-api/
    Verify the CaSe of your URL an dport if you use something other than 80

  • Geeting Cluster Node through API Call

    Dear All
    I am facing a problem in Netweaver 7.0 I  have to find out through API as which cluster node the dispatcher is forwarding the requests to. Is there any way of knowing thourgh API calls.
    We are using Java as a programming language
    Thanks in advance

    Ok, here is the update:
    We have looked into this issue and we can reproduce it.
    I will log a bug on my side but there is a workaround.
    Please ask him to use, POST https://api.share.acrobat.com/webservices/api/v1/dc/[nodeid/]?method=move&newname=foo.txt

  • Crystal Report Print Engine API calls  from Powerbuilder

    I am using Crystal Report XI R2 with Powerbuilder 9.0. I  am using Crystal Report API calls using crpe32.dll to display my reports. When i run my reports from my development machine where Crystal Reports is installed the reports run properly, but when i deploy my application on a server where Crystal Reports is not installed the report gives me error "Report has not been opened" , Error 599.
    The database logon info is properly set in the RPT file.
    I want to know whether it is possible to run reports without installing Crystal Reports and how do you do it?

    Somehow, you will have to install the CR runtime...
    Probably the best way will be to create a deployment project using a utility such as InstallShield,  Wise, MS Visual Installer, etc. Use the RDC merge modules and  add the crpe32.dll to the deployment project, ensuring the crpe32.dll is installed into the ...\3.5\bin directory. The Correct msm files are here:
    BTW., using the print engine APIs... Not something recommended, nor supported. Last header files for the crpe APIs shipped in version 9...

  • How can I create UI components dynamically based on the result of WebService/HttpService call?

    I would like to create child components of the component
    based on a XML which is retrieved by WebService/HttpService call.
    createChildren() is the one to be used to create components
    dynamically. But if I use createChildren() and call a
    WS/HttpService request in createChildren method, I can not get the
    result of WS/HttpService request in createChildren().
    It seems that the result event is processed later after
    createChildren() is completed.
    How can I implement my requirement?
    I would appreciate any pointer or suggestion.
    Best regards

    1) Use a List, with a custom itemRenderer
    2) Use a Repeater (Probably easiest)
    3) use Actionscript to addChild() components.

Maybe you are looking for

  • Printing Suddenly Stopped

    My Canon i9900 just suddenly stopped printing from any computer in my home network. My MBP just started displaying all prior print jobs in the print queue, even those completed going back almost a full year. There was no way to clear the queue, so I

  • HELP!!! main page is in gibberish!!

    okay when i try to log onto the language is in some kind of foreign language. i tried to translate it to everything but its in none of the languages. I bought this router yesterday and its been like that ever since Im running a Wi

  • Best layout for my interface?

    Hi, I'm trying to make a login interface for an authenticator I'm working on and I've tried a few layouts but I can't find one that works and looks similar on both Ubuntu Linux and Windows 7. Here's what I'm currently using: import java.awt.FlowLayou

  • VBScript as program object - alternative to WScript.Arguments?

    I am trying to create a program object with a VBScript that will change the name of a PDF created by a scheduled report.  I need to be able to tack on the string "OH_2010_Qtr_1" (or whatever state - OH is used as an example) before the file extension

  • AW Model

    Hi, I have a cube built in Analytical workspace using STD Form and built with the help of AW Manager (DB= All my dimension keys are numeric as it was built from a star schema. In AW, the dimensions are text with numeric values in that. I was