PLSQL webservice with use of explicit XSD

We do have a PLSQL package that returns information of a certain collection type. If we generate a webservice for this PLSQL packages the generated WSDL contains a generated schema (XSD) that contains some cryptic complex type names. Our clients would like to use an explicit XSD, with more additional information on the attributes (e.g. max-length) and more logical type and element names. Is there a way to adjust the generates webservice files to make use of, or represent the external XSD?

Just found the following information:
Re: PL/SQL Webservice and XMLType return and xsd mapping
which helped me a little bit. But after importing the XSD into the WSDL and trying to deploy, JDeveloper tells me there's a compilation error, and nothing else. Since I can't find a way of it to give me more info about this error, I try to run it locally, and this happens:
Error instantiating web-application
Error compiling :E:\jdevstudio10133\jdev\mywork\incexc\ws\public_html: Syntax error in source or compilation failed in: E:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\application-deployments\current-workspace-app\incexc-ws-webapp\sirc\runtime\InicialElement_LiteralSerializer.java E:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\application-deployments\current-workspace-app\incexc-ws-webapp\spcdes\runtime\IncexcSoapHttp_Tie.java:59: error #300: method inicial(sirc.InicialElement) not found in interface spcdes.Incexc
((spcdes.Incexc) getTarget()).inicial(myInicialElement);
^
Is this related to types being different among the auto-generated files and the wsdl? What else do I have to edit to get it working? Before someone directs me to google again, I already went there and it directed me back here:
Regenerating webservice from pl/sql package (error)
which so far is a dead end.
Any thoughts? I'd really like to know what options should I pick before generating the Webservice from the PL/SQL, considering how I'll import the xsd into the wsdl later. Is there any prior type mapping involved, should it be document literal, anything?
Thanks.

Similar Messages

  • Are there problems if we develop webservices with 1.4.2, but use 1.5.0?

    Hi all,
    I hope you may help me in one question.
    We develop webservices for IBM WAS 6.0 (java 1.4.2) with connection to oracle 9i and WMQ 5.3CDS12.
    But now we want to change the environment to IBM WAS 6.1 (including java 1.5.0).
    Are there problems if we develop webservices with 1.4.2 but using java 1.5.0 on websphere?
    Or should we use java 1.4.2 on websphere app server 6.1? I think WAS don't run under 1.4.2?!
    I hope you can help me.
    Thank you.
    SY,
    Marc

    You only need a new certificate when the old one expires. Changing JDKs has nothing to do with it.

  • Problem with database adapter on plsql procedure with in/out parameters

    running BPEL 10.1.3.1 and using the database adapter on a plsql procedure with in/out parameters I get errors
    the plsql procedure:
    create or replace procedure proc_with_clob_inout_parameter(
    p_string in varchar2,
    p_clob in out clob)
    is
    begin
    p_clob := p_string;
    end proc_with_clob_inout_parameter;
    In BPEL I call this procedure. When I only assign a value to the p_string parameters (in a BPEL assign) all is well. When I also assign a value to the p_clob parameter the error occurs:
    <part name="summary">
    <summary>
    file:/ora1/app/oracle/as101.3/bpel/domains/digitaaldossier/tmp/.bpel_janb_inout_1.0_f6908ccf864581b7265c362444e88075.tmp/twee.wsdl
    [ twee_ptt::twee(InputParameters,OutputParameters) ] - WSIF JCA Execute of
    operation 'twee' failed due to: Error while trying to prepare and execute
    an API.
    An error occurred while preparing and executing the
    JANB.PROC_WITH_CLOB_PARAMETER2 API. Cause: java.sql.SQLException: Parameter
    Type Conflict [Caused by: Parameter Type Conflict]
    ; nested exception is:
    ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the
    JANB.PROC_WITH_CLOB_INOUT_PARAMETER API. Cause: java.sql.SQLException: Parameter
    Type Conflict [Caused by: Parameter Type Conflict]
    Check to ensure that the API is defined in the database and that the
    parameters match the signature of the API. Contact oracle support if error
    is not fixable.
    </summary>
    </part>
    In BPEL 10.1.2.0 this isn't a problem. I tested it against a 10.2.0.1 and a 10.2.0.2 database and in both situations I get the error with BPEL 10.1.3.1 and no error with BPEL 10.1.2.0
    it appears to be a problem in the database adapter...
    anyone with the same problems and/or a solution?

    Not of any use to you, but we had exactly the same problem on Friday when we applied AS 10.1.2.2 Patchset on top of BPEL 10.1.2.0.2.
    The clob in our pl/sql proc wan't declared as in/out but for some reasons JDeveloper had created a clob on the Output Parameter type in the db partner link xsd. I removed this and it worked. This code had been untouched , and working fine, for months.
    I'll be raising an SR today.
    Rob J

  • Restful webservice with basic authentication

    Hi, i am running the following:
    Oracle: 11.2....
    ApexListener: 2.....
    Glassfish: 3.0...
    Apex: 4.2.1
    I have successfully established some restful webservices. Now i want to add a basic authentication to them against an APEX Authentication Scheme which is used in one of my APEX Applications. I cannot find any documentation related to Glassfish or ApexListener or APEX to do that.
    Or are the RESTful Service Privileges which belong to APEX User Goups intent to do a basic authentication ?
    Thanks for your help !
    -- Klaus

    OK got it solved by my self.
    Solution:
    Define a RESTFUL (POST, PLSQL) Service with the following HEADER parameters:
    authorization          authorization     IN     STRING
    X-APEX-STATUS-CODE     status          OUT     INTEGER
    As per RFC 1945, the Authorization header value should contain the username:password
    as encoded (base64) string. That is what the RESTclient send (over https)
    In the PLSQL i decode :authorization and validate it against APEX Authentication Scheme.
    The result of the validation drives the response header (:status) in PLSQL with 200 (ok) or 401 (Not Authorized)
    -- Klaus

  • Error publishing plsql webservice (xml schema mapping and/or serializer)

    Hi guys,
    I'm with a problem when publishing plsql webservices from JDeveloper 11.
    The scenario is something like this:
    1) I have a connection with a database 9i, and the objects (packages, object types, etc) are all in there.
    2) In this case, i can publish the package spec using the option "Publish as JAX-RPC Web Service" normally.
    3) A database 11g was created, and i compiled the objects in this environment.
    4) Then i've created a new connection with a database 11g.
    5) In this case, when i'll publish the webservice, the error occurs: "The following types used by the program unit do not have an XML Schema mapping and/or serializer specified: REC_DMP_REMESSA"
    I have no idea in how to solve this case. Someone can help?
    Thank in advance.
    Best Regards,
    Gustavo

    Duplicate of https://forums.oracle.com/thread/2610823
    Timo

  • Unable to invoke Webservice with BPEL process

    Hi,
    I wrote a basic WebService in Java and now I want to invoke it with a simple BPEL Process. But it doesn't work. I am using Netbeans 6.5 as IDE and GlassFish V2 as Server.
    Everytime when I try to test my BPEL Process, I got back the following failure message:
    ERROR: Successful execution of Start: NPSProcesstestingApp
    WARNING: (JBIMA0405) Start of service assembly NPSProcesstestingApp succeeded partially; some service units failed to start.
    * Component: sun-http-binding
    ERROR: (SOAPBC_START_1) HTTPBC-E00205: Start failed. java.lang.Exception: LifecycleException: PWC3985: Initialisierung der Protokoll-Behandlungsroutine fehlgeschlagen: java.net.BindException: Address already in use: bind: 8083
    * Component: sun-bpel-engine
    INFO: (JBIMA0409) Lifecycle operation start succeeded for Service Unit NPSProcesstestingApp-NPSProcesstesting.
    I have absolutely no idea why it doesn't work, my webservice is running on localhost at port 8083: http://localhost:8083/numberportingservice, and I deploy it in the following way:
    //NumberPortingService
    NumberPortingServiceImpl npsImpl = new NumberPortingServiceImpl();
    new TestDataGeneratorNPS(npsImpl);
    JaxWsServerFactoryBean sfNPS = new JaxWsServerFactoryBean();
    sfNPS.setServiceClass(NumberPortingService.class);
    sfNPS.setAddress("http://localhost:8083/numberportingservice");
    sfNPS.setServiceBean(npsImpl);
    sfNPS.create();
    That works fine, but it doesn't work with the BPEL process, GlassFish is running on Port 7272 and my webservice on Port 8083, so is the Port 8083 blocked? I checked it, it is not blocked by another application, only my webservice is using it.
    My BPEL Process looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <process
    name="NPStesting"
    targetNamespace="http://enterprise.netbeans.org/bpel/NPSProcesstesting/NPStesting"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace"
    xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor"
    xmlns:tns="http://enterprise.netbeans.org/bpel/NPSProcesstesting/NPStesting">
    <import namespace="http://enterprise.netbeans.org/bpel/numberportingserviceWrapper" location="localhost_8083/numberportingserviceWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://jaxws/" location="localhost_8083/numberportingservice.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <partnerLinks>
    <partnerLink name="PartnerLink1" xmlns:tns="http://enterprise.netbeans.org/bpel/numberportingserviceWrapper" partnerLinkType="tns:NumberPortingServiceLinkType" myRole="NumberPortingServiceRole"/>
    </partnerLinks>
    <variables>
    <variable name="StatecountOut" xmlns:tns="http://jaxws/" messageType="tns:statecountResponse"/>
    <variable name="StatecountIn" xmlns:tns="http://jaxws/" messageType="tns:statecount"/>
    </variables>
    <sequence>
    <receive name="Receive1" createInstance="yes" partnerLink="PartnerLink1" operation="statecount" xmlns:tns="http://jaxws/" portType="tns:NumberPortingService" variable="StatecountIn"/>
    <reply name="Reply1" partnerLink="PartnerLink1" operation="statecount" xmlns:tns="http://jaxws/" portType="tns:NumberPortingService" variable="StatecountOut"/>
    </sequence>
    </process>
    The wsdl of my webservice looks like this:
    <?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="NumberPortingServiceService" targetNamespace="http://jaxws/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://jaxws/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://jaxws/" xmlns:tns="http://jaxws/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="address" type="tns:address" />
    <xs:element name="check_porting_possible" type="tns:check_porting_possible" />
    <xs:element name="check_porting_possibleResponse" type="tns:check_porting_possibleResponse" />
    <xs:element name="check_porting_status" type="tns:check_porting_status" />
    <xs:element name="check_porting_statusResponse" type="tns:check_porting_statusResponse" />
    <xs:element name="customer" type="tns:customer" />
    <xs:element name="customers" type="tns:customers" />
    <xs:element name="get_porting_result" type="tns:get_porting_result" />
    <xs:element name="get_porting_resultResponse" type="tns:get_porting_resultResponse" />
    <xs:element name="portingRequest" type="tns:portingRequest" />
    <xs:element name="portingResult" type="tns:portingResult" />
    <xs:element name="schedule_batch_porting" type="tns:schedule_batch_porting" />
    <xs:element name="schedule_batch_portingResponse" type="tns:schedule_batch_portingResponse" />
    <xs:element name="statecount" type="tns:statecount" />
    <xs:element name="statecountResponse" type="tns:statecountResponse" />
    <xs:element name="telephoneNumber" type="tns:telephoneNumber" />
    <xs:complexType name="check_porting_possible">
    <xs:sequence>
    <xs:element minOccurs="0" name="customer" type="tns:customer" />
    <xs:element name="providerId" type="xs:long" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="customer">
    <xs:sequence>
    <xs:element minOccurs="0" name="id" type="xs:string" />
    <xs:element minOccurs="0" name="name" type="xs:string" />
    <xs:element name="provider" type="xs:long" />
    <xs:element minOccurs="0" name="address" type="tns:address" />
    <xs:element minOccurs="0" name="telephoneNumber" type="tns:telephoneNumber" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="address">
    <xs:sequence>
    <xs:element minOccurs="0" name="area_code" type="xs:string" />
    <xs:element minOccurs="0" name="city" type="xs:string" />
    <xs:element name="door" type="xs:int" />
    <xs:element name="house" type="xs:int" />
    <xs:element minOccurs="0" name="street" type="xs:string" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" />
    </xs:complexType>
    <xs:complexType name="telephoneNumber">
    <xs:sequence>
    <xs:element minOccurs="0" name="area_code" type="xs:string" />
    <xs:element minOccurs="0" name="country_code" type="xs:string" />
    <xs:element minOccurs="0" name="id" type="xs:string" />
    <xs:element minOccurs="0" name="number" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="check_porting_possibleResponse">
    <xs:sequence>
    <xs:element name="return" type="xs:boolean" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="check_porting_status">
    <xs:sequence>
    <xs:element minOccurs="0" name="customer" type="tns:customer" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="check_porting_statusResponse">
    <xs:sequence>
    <xs:element name="return" type="xs:boolean" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="get_porting_result">
    <xs:sequence>
    <xs:element minOccurs="0" name="customer" type="tns:customer" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="get_porting_resultResponse">
    <xs:sequence>
    <xs:element minOccurs="0" name="return" type="tns:portingResult" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="portingResult">
    <xs:sequence>
    <xs:element minOccurs="0" name="comment" type="xs:string" />
    <xs:element name="new_provider" type="xs:long" />
    <xs:element name="success" type="xs:boolean" />
    <xs:element minOccurs="0" name="customer" type="tns:customer" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="schedule_batch_porting">
    <xs:sequence>
    <xs:element maxOccurs="unbounded" minOccurs="0" name="portingrequests" type="tns:portingRequest" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="portingRequest">
    <xs:sequence>
    <xs:element name="new_provider" type="xs:long" />
    <xs:element name="porting_date" type="xs:long" />
    <xs:element minOccurs="0" name="customer" type="tns:customer" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="schedule_batch_portingResponse">
    <xs:sequence>
    <xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="xs:anyType" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="statecount">
    <xs:sequence />
    </xs:complexType>
    <xs:complexType name="statecountResponse">
    <xs:sequence>
    <xs:element name="return" type="xs:int" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="customers">
    <xs:sequence>
    <xs:element maxOccurs="unbounded" minOccurs="0" name="customers" nillable="true" type="tns:customer" />
    </xs:sequence>
    </xs:complexType>
    <xs:element name="InvalidCustomerFault" type="tns:InvalidCustomerFault" />
    <xs:complexType name="InvalidCustomerFault">
    <xs:sequence />
    </xs:complexType>
    <xs:element name="NotFinishedFault" type="tns:NotFinishedFault" />
    <xs:complexType name="NotFinishedFault">
    <xs:sequence />
    </xs:complexType>
    </xs:schema>
    </wsdl:types>
    <wsdl:message name="statecountResponse">
    <wsdl:part element="tns:statecountResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="check_porting_statusResponse">
    <wsdl:part element="tns:check_porting_statusResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="schedule_batch_porting">
    <wsdl:part element="tns:schedule_batch_porting" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="check_porting_possible">
    <wsdl:part element="tns:check_porting_possible" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="get_porting_resultResponse">
    <wsdl:part element="tns:get_porting_resultResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="check_porting_status">
    <wsdl:part element="tns:check_porting_status" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="statecount">
    <wsdl:part element="tns:statecount" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="NotFinishedFault">
    <wsdl:part element="tns:NotFinishedFault" name="NotFinishedFault">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="get_porting_result">
    <wsdl:part element="tns:get_porting_result" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="check_porting_possibleResponse">
    <wsdl:part element="tns:check_porting_possibleResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="InvalidCustomerFault">
    <wsdl:part element="tns:InvalidCustomerFault" name="InvalidCustomerFault">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="schedule_batch_portingResponse">
    <wsdl:part element="tns:schedule_batch_portingResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:portType name="NumberPortingService">
    <wsdl:operation name="check_porting_possible">
    <wsdl:input message="tns:check_porting_possible" name="check_porting_possible">
    </wsdl:input>
    <wsdl:output message="tns:check_porting_possibleResponse" name="check_porting_possibleResponse">
    </wsdl:output>
    <wsdl:fault message="tns:InvalidCustomerFault" name="InvalidCustomerFault">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="check_porting_status">
    <wsdl:input message="tns:check_porting_status" name="check_porting_status">
    </wsdl:input>
    <wsdl:output message="tns:check_porting_statusResponse" name="check_porting_statusResponse">
    </wsdl:output>
    <wsdl:fault message="tns:InvalidCustomerFault" name="InvalidCustomerFault">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="get_porting_result">
    <wsdl:input message="tns:get_porting_result" name="get_porting_result">
    </wsdl:input>
    <wsdl:output message="tns:get_porting_resultResponse" name="get_porting_resultResponse">
    </wsdl:output>
    <wsdl:fault message="tns:NotFinishedFault" name="NotFinishedFault">
    </wsdl:fault>
    <wsdl:fault message="tns:InvalidCustomerFault" name="InvalidCustomerFault">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="schedule_batch_porting">
    <wsdl:input message="tns:schedule_batch_porting" name="schedule_batch_porting">
    </wsdl:input>
    <wsdl:output message="tns:schedule_batch_portingResponse" name="schedule_batch_portingResponse">
    </wsdl:output>
    <wsdl:fault message="tns:InvalidCustomerFault" name="InvalidCustomerFault">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="statecount">
    <wsdl:input message="tns:statecount" name="statecount">
    </wsdl:input>
    <wsdl:output message="tns:statecountResponse" name="statecountResponse">
    </wsdl:output>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="NumberPortingServiceServiceSoapBinding" type="tns:NumberPortingService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="check_porting_possible">
    <soap:operation soapAction="" style="document" />
    <wsdl:input name="check_porting_possible">
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output name="check_porting_possibleResponse">
    <soap:body use="literal" />
    </wsdl:output>
    <wsdl:fault name="InvalidCustomerFault">
    <soap:fault name="InvalidCustomerFault" use="literal" />
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="check_porting_status">
    <soap:operation soapAction="" style="document" />
    <wsdl:input name="check_porting_status">
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output name="check_porting_statusResponse">
    <soap:body use="literal" />
    </wsdl:output>
    <wsdl:fault name="InvalidCustomerFault">
    <soap:fault name="InvalidCustomerFault" use="literal" />
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="get_porting_result">
    <soap:operation soapAction="" style="document" />
    <wsdl:input name="get_porting_result">
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output name="get_porting_resultResponse">
    <soap:body use="literal" />
    </wsdl:output>
    <wsdl:fault name="NotFinishedFault">
    <soap:fault name="NotFinishedFault" use="literal" />
    </wsdl:fault>
    <wsdl:fault name="InvalidCustomerFault">
    <soap:fault name="InvalidCustomerFault" use="literal" />
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="schedule_batch_porting">
    <soap:operation soapAction="" style="document" />
    <wsdl:input name="schedule_batch_porting">
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output name="schedule_batch_portingResponse">
    <soap:body use="literal" />
    </wsdl:output>
    <wsdl:fault name="InvalidCustomerFault">
    <soap:fault name="InvalidCustomerFault" use="literal" />
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="statecount">
    <soap:operation soapAction="" style="document" />
    <wsdl:input name="statecount">
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output name="statecountResponse">
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="NumberPortingServiceService">
    <wsdl:port binding="tns:NumberPortingServiceServiceSoapBinding" name="NumberPortingServicePort">
    <soap:address location="http://localhost:8083/numberportingservice" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    Have anybody an idea why I got this failure I mentioned above when trying to start the BPEL process?
    Please help me :)
    Thanks a lot!!!
    Steve

    Or can you invoke the service from the 'gui' of the deployed webservice in the glassfish as ?
    you need to check if either the service doesnt work or the invoke of the service from bpel is the problem

  • Develop PLSQL web services using JDeveloper.

    Dear Sir,
    1. Must we use OC4J to generate PLSQL webservices? or we can use any other J2EE compliant app server?
    2. Does it mean in Oracle environment, we can only use JAVA and not other language to wrap PLSQL stored procedures to create PLSQL web services?
    Please advise.
    Thank you.

    You don't need OC4J - you can use JDeveloper to generate Web services from PL/SQL
    You can manuall wrap PL/SQL into web services with any language - however JDeveloper uses Java to do this without the need for you to code anything.

  • Error publishing plsql webservice - JDEV11

    Hi guys,
    I'm with a problem when publishing plsql webservices from JDeveloper 11.
    The scenario is something like this:
    1) I have a connection with a database 9i, and the objects (packages, object types, etc) are all in there.
    2) In this case, i can publish the package spec using the option "Publish as JAX-RPC Web Service" normally.
    3) A database 11g was created, and i compiled the objects in this environment.
    4) Then i've created a new connection with a database 11g.
    5) In this case, when i'll publish the webservice, the error occurs: "The following types used by the program unit do not have an XML Schema mapping and/or serializer specified: REC_DMP_REMESSA"
    I have no idea in how to solve this case. Someone can help?
    Thank in advance.
    Best Regards,
    Gustavo

    Gustavo,
    Wrong forum. This is SQL PL/SQL forum. May be you want to move this to Java or FM forums...
    Fusion Applications
    Fusion Middleware
    Java
    vr,
    Sudhakar

  • Error publishing plsql webservice

    Hi guys,
    I'm with a problem when publishing plsql webservices from JDeveloper 11.
    The scenario is something like this:
    1) I have a connection with a database 9i, and the objects (packages, object types, etc) are all in there.
    2) In this case, i can publish the package spec using the option "Publish as JAX-RPC Web Service" normally.
    3) A database 11g was created, and i compiled the objects in this environment.
    4) Then i've created a new connection with a database 11g.
    5) In this case, when i'll publish the webservice, the error occurs: "The following types used by the program unit do not have an XML Schema mapping and/or serializer specified: REC_DMP_REMESSA"
    I have no idea in how to solve this case. Someone can help?
    Thank in advance.
    Best Regards,
    Gustavo

    Gustavo, you better ask this in a pl/sql forum.
    Timo

  • PLSQL webservice element order and minOccurs="0"

    Hi,
    When i generate a webservice based on a plsql procedure that makes use of types the order of the elements for the types in the generated wsdl is random, i would expect it to be the same as defined in the database object type. Also i am missing attributes like minOccurs="0" for input parameters that can be null in the procedures. Currently i must edit the wsdl after generation to solve both issues but i loose those changes after regeneration of the webservice, which causes me to apply the changes again after every regeneration. Can this be solved ...?
    Kind Regards,
    Andre Jochems

    Just found the following information:
    Re: PL/SQL Webservice and XMLType return and xsd mapping
    which helped me a little bit. But after importing the XSD into the WSDL and trying to deploy, JDeveloper tells me there's a compilation error, and nothing else. Since I can't find a way of it to give me more info about this error, I try to run it locally, and this happens:
    Error instantiating web-application
    Error compiling :E:\jdevstudio10133\jdev\mywork\incexc\ws\public_html: Syntax error in source or compilation failed in: E:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\application-deployments\current-workspace-app\incexc-ws-webapp\sirc\runtime\InicialElement_LiteralSerializer.java E:\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\application-deployments\current-workspace-app\incexc-ws-webapp\spcdes\runtime\IncexcSoapHttp_Tie.java:59: error #300: method inicial(sirc.InicialElement) not found in interface spcdes.Incexc
    ((spcdes.Incexc) getTarget()).inicial(myInicialElement);
    ^
    Is this related to types being different among the auto-generated files and the wsdl? What else do I have to edit to get it working? Before someone directs me to google again, I already went there and it directed me back here:
    Regenerating webservice from pl/sql package (error)
    which so far is a dead end.
    Any thoughts? I'd really like to know what options should I pick before generating the Webservice from the PL/SQL, considering how I'll import the xsd into the wsdl later. Is there any prior type mapping involved, should it be document literal, anything?
    Thanks.

  • Generating plsql webservices, output different namespaces not consistent

    We've defined some database-packages which we want to publish as webservice. We use the option in jdeveloper to generate the plsql webservice.
    If we look in the generated wsdl generated by user A, the wsdl gives namespaces like :
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://someurl/AlgemeenWS.wsdl/types/"
         elementFormDefault="qualified" xmlns:tns="http://nl/fundeon/fundit/someurl/AlgemeenWS.wsdl/types/"if user B generates the same webservice it gives namespaces lile :
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://someurl/AlgemeenWS.wsdl"
         elementFormDefault="qualified" xmlns:tns="http://nl/fundeon/fundit/someurl/AlgemeenWS.wsdl"Any idea how we can control this generated result?
    update :
    when we generate the classes, etc for the first time after selecting the program units to publish...it generates the correct wsdl.
    when we repeat this step (second time of generation), we get the wrong namespace in the wsdl and the log gives us this warning :
    WARNING: Ignoring target namespace for schema: "http://someurl/relatieWS/RelatieWS.wsdl", WSDL target namespace is used for the value types in the same package as Service Endpoint: "nl.packagename.relatieWS.RelatieWSUser_getadviseur_Out"

    Hi Eric,
    I experience exactly the same problem.
    The first time the namespace contains 'types', regenerating the webservice afterwards omits the 'types' part.
    This has some very awkward effects as the webservice envelop and any proxies are affected by this bug.
    I have tried with both 10.1.3.1 & 10.1.3.2, both have the same problems.
    I am looking into regenerations of the webservice using ant tasks, there might be a bug in JDeveloper itself.. who knows...
    perhaps someone from oracle can comment / test this and open up a ticket for resolving....
    Fred Dullemond

  • Problem when adding ABAP custom webservice with Visual Studio 2010

    Hi All,
    After creating a webservice for a custom RFC function developed in a ECC6.0 SAP machine, I tried to add it to a Visual Studio 2010 windows aplication (through a web reference connection).
    The sequence I've done is:
    - Create RFC in ABAP, with testing ok
    - Create a WEBSERVICE with the ABAP editor
    - Configured the webservice with SICF with:
         Procedure: Standard
         Logon data: standard R3 user
         Security requirement: Standard
         Authentication: Standard SAP User
    Then, in SOAMANAGER I copied the webservice URL and tried to add it to Visual Studio 2010, but it keeps asking me the user and password. I try to supply the R3 username and password but if fails.
    Why is ECC6.0 asking the user and passord if I've defined a SAP user for the login process?
    Is there any way to disable this?
    Thanks,
    Manuel Dias

    Hello Manuel,
    You can use the following code:
    CredentialCache cache = new CredentialCache();
          cache.Add(new Uri("WEBSERVICEURL:PORTNUMBER/"), "Basic", new NetworkCredential("USERNAME", "PASSWORD"));
    SAP needs a password.
    Kind regards,
    JK

  • Bug:4705928 PLSQL: Memory leak using small varrays

    We have Oracle version 10.2.0.1.0
    We have a problem with a procedure.
    In our scenario we make use of VARRAY in the procedure to pass some filter parameters to a select distinct querying a view made on three tables.
    Unfotunately not always execution it is successful.
    Sometimes it returns wrong value (0 for the count parameter), sometimes (rarely) the server stops working.
    We suspect that this is caused by a bug fixed in versione 10.2.0.3.0
    Bug:4705928 PLSQL: Memory leak using small varrays when trimming the whole collection and inserting into it in a loop
    We suspect this becasue we made two procedure the first (spProductCount) uses a function (fnProductFilter) to calculate the values of a varray and passes them into the select,
    while in the second procedure (spProductCount2) parameters are passed directly into the statement without varray
    and there are failures only in the first procedure.
    On the other hand on another server 10.2.0.1.0 we never have this problem.
    The instance manifesting the bug runs under shared mode, while the other is under dedicated mode.
    Turning the first one to dedicated mode makes the bugs disapear.
    Unfortunately this is not a solution.
    In the sample there are the three table with all constraints, the view, tha varray custom type, the function and the two procedures.
    Is there someone that may examine our sample and tell us if the pl/sql code corresponds to the bug desciption.
    We also want to know if it's possibile that the same server running under different mode (SHARED/DEDICATED) doesn't behave the same way.
    The tables:
    --Products
    CREATE TABLE "Products" (
         "Image" BLOB
         , "CatalogId" RAW(16)
         , "ProductId" RAW(16)
         , "MnemonicId" NVARCHAR2(50) DEFAULT ''
         , "ProductParentId" RAW(16)
    ALTER TABLE "Products"
         ADD CONSTRAINT "NN_Products_M04" CHECK ("CatalogId" IS NOT NULL)
    ALTER TABLE "Products"
         ADD CONSTRAINT "NN_Products_M05" CHECK ("ProductId" IS NOT NULL)
    ALTER TABLE "Products"
    ADD CONSTRAINT "PK_Products"
    PRIMARY KEY ("ProductId")
    CREATE INDEX "IX_Products"
    ON "Products" ("CatalogId", "MnemonicId")
    CREATE UNIQUE INDEX "UK_Products"
    ON "Products" (DECODE("MnemonicId", NULL, NULL, RAWTOHEX("CatalogId") || "MnemonicId"))
    --Languages
    CREATE TABLE "Languages" (
         "Description" NVARCHAR2(250)
         , "IsStandard" NUMBER(1)
         , "LanguageId" RAW(16)
         , "MnemonicId" NVARCHAR2(12)
    ALTER TABLE "Languages"
         ADD CONSTRAINT "NN_Languages_M01" CHECK ("LanguageId" IS NOT NULL)
    ALTER TABLE "Languages"
         ADD CONSTRAINT "NN_Languages_M05" CHECK ("MnemonicId" IS NOT NULL)
    ALTER TABLE "Languages"
    ADD CONSTRAINT "PK_Languages"
    PRIMARY KEY ("LanguageId")
    ALTER TABLE "Languages"
    ADD CONSTRAINT "UK_Languages"
    UNIQUE ("MnemonicId")
    --ProductDesc
    CREATE TABLE "ProductDesc" (
         "Comment" NCLOB
         , "PlainComment" NCLOB
         , "Description" NVARCHAR2(250)
         , "DescriptionText" NCLOB
         , "PlainDescriptionText" NCLOB
         , "LanguageId" NVARCHAR2(12)
         , "ProductId" RAW(16)
    ALTER TABLE "ProductDesc"
         ADD CONSTRAINT "NN_ProductDescM01" CHECK ("LanguageId" IS NOT NULL)
    ALTER TABLE "ProductDesc"
         ADD CONSTRAINT "NN_ProductDescM02" CHECK ("ProductId" IS NOT NULL)
    ALTER TABLE "ProductDesc"
    ADD CONSTRAINT "PK_ProductDesc"
    PRIMARY KEY ("ProductId", "LanguageId")
    ALTER TABLE "ProductDesc"
    ADD CONSTRAINT "FK_ProductDesc1"
    FOREIGN KEY("ProductId") REFERENCES "Products" ("ProductId")
    ALTER TABLE "ProductDesc"
    ADD CONSTRAINT "FK_ProductDesc2"
    FOREIGN KEY("LanguageId") REFERENCES "Languages" ("MnemonicId")
    /The view:
    --ProductView
    CREATE OR REPLACE VIEW "vwProducts"
    AS
         SELECT
               "Products"."CatalogId"
              , "ProductDesc"."Comment"
              , "ProductDesc"."PlainComment"
              , "ProductDesc"."Description"
              , "ProductDesc"."DescriptionText"
              , "ProductDesc"."PlainDescriptionText"
              , "Products"."Image"
              , "Languages"."MnemonicId" "LanguageId"
              , "Products"."MnemonicId"
              , "Products"."ProductId"
              , "Products"."ProductParentId"
              , TRIM(NVL("ProductDesc"."Description" || ' ', '') || NVL("ParentDescriptions"."Description", '')) "FullDescription"
         FROM "Products"
         CROSS JOIN "Languages"
         LEFT OUTER JOIN "ProductDesc"
         ON "Products"."ProductId" = "ProductDesc"."ProductId"
         AND "ProductDesc"."LanguageId" = "Languages"."MnemonicId"
         LEFT OUTER JOIN "ProductDesc" "ParentDescriptions"
         ON "Products"."ProductParentId" = "ParentDescriptions"."ProductId"
         AND ("ParentDescriptions"."LanguageId" = "Languages"."MnemonicId")
    /The varray:
    --CustomType VARRAY
    CREATE OR REPLACE TYPE Varray_Params IS VARRAY(100) OF NVARCHAR2(1000);
    /The function:
    --FilterFunction
    CREATE OR REPLACE FUNCTION "fnProductFilter" (
         parCatalogId "Products"."CatalogId"%TYPE,
         parLanguageId                    NVARCHAR2 := N'it-IT',
         parFilterValues                    OUT Varray_Params
    RETURN INTEGER
    AS
         varSqlCondition                    VARCHAR2(32000);
         varSqlConditionValues          NVARCHAR2(32000);
         varSql                              NVARCHAR2(32000);
         varDbmsCursor                    INTEGER;
         varDbmsResult                    INTEGER;
         varSeparator                    VARCHAR2(2);
         varFilterValue                    NVARCHAR2(1000);
         varCount                         INTEGER;
    BEGIN
         varSqlCondition := '(T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId )';
         varSqlConditionValues := CHR(39) || TO_CHAR(parCatalogId) || CHR(39) || N', ' || CHR(39 USING NCHAR_CS) || parLanguageId || CHR(39 USING NCHAR_CS);
         parFilterValues := Varray_Params();
         varSql := N'SELECT FilterValues.column_value FilterValue FROM TABLE(Varray_Params(' || varSqlConditionValues || N')) FilterValues';
         BEGIN
              varDbmsCursor := dbms_sql.open_cursor;
              dbms_sql.parse(varDbmsCursor, varSql, dbms_sql.native);
              dbms_sql.define_column(varDbmsCursor, 1, varFilterValue, 1000);
              varDbmsResult := dbms_sql.execute(varDbmsCursor);
              varCount := 0;
              LOOP
                   IF (dbms_sql.fetch_rows(varDbmsCursor) > 0) THEN
                        varCount := varCount + 1;
                        dbms_sql.column_value(varDbmsCursor, 1, varFilterValue);
                        parFilterValues.extend(1);
                        parFilterValues(varCount) := varFilterValue;
                   ELSE
                        -- No more rows to copy
                        EXIT;
                   END IF;
              END LOOP;
              dbms_sql.close_cursor(varDbmsCursor);
         EXCEPTION WHEN OTHERS THEN
              dbms_sql.close_cursor(varDbmsCursor);
              RETURN 0;
         END;
         FOR i in parFilterValues.first .. parFilterValues.last LOOP
              varSeparator := ', ';
         END LOOP;
         RETURN 1;
    END;
    /The procedures:
    --Procedure presenting anomaly\bug
    CREATE OR REPLACE PROCEDURE "spProductCount" (
         parCatalogId "Products"."CatalogId"%TYPE,
         parLanguageId NVARCHAR2 := N'it-IT',
         parRecords OUT NUMBER
    AS
         varFilterValues Varray_Params;
         varResult INTEGER;
         varSqlTotal VARCHAR2(32000);
    BEGIN
         parRecords := 0;
         varResult := "fnProductFilter"(parCatalogId, parLanguageId, varFilterValues);
         varSqlTotal := 'BEGIN
         SELECT count(DISTINCT T_Product."ProductId") INTO :parCount FROM "vwProducts" T_Product
              WHERE ((T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId ));
    END;';
         EXECUTE IMMEDIATE varSqlTotal USING OUT parRecords, varFilterValues(1), varFilterValues(2);
    END;
    --Procedure NOT presenting anomaly\bug
    CREATE OR REPLACE PROCEDURE "spProductCount2" (
         parCatalogId "Products"."CatalogId"%TYPE,
         parLanguageId NVARCHAR2 := N'it-IT',
         parRecords OUT NUMBER
    AS
         varFilterValues Varray_Params;
         varResult INTEGER;
         varSqlTotal VARCHAR2(32000);
    BEGIN
         parRecords := 0;
         varSqlTotal := 'BEGIN
         SELECT count(DISTINCT T_Product."ProductId") INTO :parCount FROM "vwProducts" T_Product
              WHERE ((T_Product."CatalogId" = HEXTORAW(:parentId)) AND (T_Product."LanguageId" = :languageId ));
    END;';
         EXECUTE IMMEDIATE varSqlTotal USING OUT parRecords, parCatalogId, parLanguageId;
    END;Edited by: 835125 on 2011-2-9 1:31

    835125 wrote:
    Using VARRAY was the only way I found to transform comma seprated text values (e.g. "'abc', 'def', '123'") in a collection of strings.A varray is just a functionally crippled version of a nested table collection type, with a defined limit you probably don't need. (Why 100 specifically?) Instead of
    CREATE OR REPLACE TYPE varray_params AS VARRAY(100) OF NVARCHAR2(1000);try
    CREATE OR REPLACE TYPE array_params AS TABLE OF NVARCHAR2(1000);I don't know whether that will solve the problem but at least it'll be a slightly more useful type.
    What makes you think it's a memory leak specifically? Do you observe session PGA memory use going up more than it should?
    btw good luck with all those quoted column names. I wouldn't like to have to work with those, although they do make the forum more colourful.
    Edited by: William Robertson on Feb 11, 2011 7:54 AM

  • XML error when Crystal report calling Webservice with Rampart (ws-security)

    Could you please advise me where I am doing wrong -
    I have designed the report using CR 2008 following a SAP document instructions but getting error. -
    1. Created a Class file and put it in the class folder -
    public class PasswordHandler implements CallbackHandler { public void handle(Callback[] callbacks) throws IOException,UnsupportedCallbackException { for (int i = 0; i < callbacks.length; i++) { WSPasswordCallback pwcb = (WSPasswordCallback)callbacks<i>; pwcb.setPassword("clientPassword"); return; } } -
    2. created wse_policy.xml with below content clientName com.rockalltech.action.reports.PasswordHandler -
    3.Also modified CRConfig.xml with below data com.PasswordHandler -
    Still I am getting Rampart error like below -
    [2009-06-02 18:04:26,977,,FATAL,com.crystaldecisions.data.xml] org.apache.axis2.AxisFault: org.apache.rampart.Rampart at org.apache.axis2.deployment.URLBasedAxisConfigurator.getAxisConfiguration(URLBasedAxisConfigurator.java:77) at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64) at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromURIs(ConfigurationContextFactory.java:190) at com.crystaldecisions.data.xml.a.b.a(Unknown Source) at com.crystaldecisions.data.xml.a.a.a(Unknown Source) at com.crystaldecisions.data.xml.f.a(Unknown Source) at com.crystaldecisions.data.xml.f.int(Unknown Source) at com.crystaldecisions.data.xml.CRDB_XMLImpl.DbExecuteQuery(Unknown Source) at com.crystaldecisions.reports.queryengine.driverImpl.xml.XMLQueryDefinition.Execute(Unknown Source) Thomas Edited by: thomasjv on Jun 2, 2009 7:15 PM Edited by: thomasjv on Jun 3, 2009 10:45 AM Edited by: thomasjv on Jun 3, 2009 10:45 AM Edited by: thomasjv on Jun 3, 2009 10:46 AM

    Hi!
    Thanks for the help:
    - I give all proxy details. In HTTP and HTTPS proxy tabs too.
    one interesting thing:
    - We publicate the same WebService with HTTP and HTTPS prefix.
    - If I create a proxy for the WS with HTTP, everything is correct and works well.
    - If I create a proxy for the WS with HTTPS, gives the error written the previous posts. (And can't create the logical port with SOAMANAGER)
    I compare the 2 WSDL. It is the same, except the links. (HTTP and HTTPS) all others are same.
    - And why it is possible in both case (HTTP, HTTPS) to create the proxy with SE80 from the WSDL URL? (And after the logical port was failed)

  • How to create and use Webservice controls using WSDL in weblogic portal10.3

    Hi All,
    I have WSDL , How to create webservice controls using the WSDL in weblogic portal 10.3 and use those controls to invoke those webservice methods?
    please give me the documents links for this.
    Thanks
    Venkata Sarvabatla

    As far as I remember, Controls can be called only from Pageflows, BackingFiles, Another Control (Like control calling another control) etc. In pageflow we use annotation @Control and give control classname and a varialbe for that. I am pretty sure this annotation may not work from normal java class and in your case a JAVA JSR Class.
    If you installed the samples, refer the samples from WLS: C:\beawlp103\wlserver_10.3\samples\server\examples\src\examples\webservices. They have lot of fully ready to work samples with instructions. I used clientgen ant task. But you can use standard SUN JDK Command "wsimport" also to generate the java files from the WSDL. Open any command prompt. If java is in classpath, just run wsimport and that should give an idea.
    Goud

Maybe you are looking for