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
-
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,
MarcYou 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 !
-- KlausOK 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,
GustavoDuplicate 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!!!
SteveOr 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,
GustavoGustavo,
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,
GustavoGustavo, 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 JochemsJust 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 DiasHello 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:31835125 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 AMHi!
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 SarvabatlaAs 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
-
Excise invoice to ship-to-party but billing to Sold-to-party
Hi Experts, My client wants to send pro-forma excise invoice to ship-to-party but wants billing to Sold to party. here Sold to party and Ship to party address will be different. can you tell me the settings which should I do. Thanks in advance.
-
Several parts of my Mac are not functioning well
Greetings, I own a Mac Pro (2008 model), which, while working perfectly, exhibits some issues. Having been annoyed by one of them today, I've finally managed to ask in this forum (english isn't my native language, so I hope to be clear enough in my p
-
How do I replace my superdrive in my late 2007 macbook pro 15 inch?
My macbook pro doesn't read or burn CD's, doesn't burn DVD's. It's a 5 year old computer and I'm sure it's time to replace the superdrive in it. Is there a step by step procedure in doing this that I can do myself? I went into an apple store and was
-
I am in a crunch - I am using a template from Muse Templates to create a website for someone. It's due TONIGHT! I need to add videos and pictures and text and slideshows to different areas of the site. I put them in place and then as soon as I previe
-
Missing blue frame that shows around field when editing.
Often, when fields are close together, the blue frame that shows the field gets in the way of selecting nearby fields. I often wished there was a way to turn this off. Well, I got my wish. Now, I just see black dots around the field. I don't know w