Generating wsdl:fault with Oracle Web Services
What conditions are required to have Oracle Web Services throw a defined wsdl:fault over a soap:fault? Is there documentation on how to map these correctly from your java code? I can't seem to find anything in the documenation that discusses this and when using the WebServiceAssembler to generate WSDLs including an exception in a method signature does nothing to generate a wsdl section in the generated portType.
Any pointers are appreciated.
Hi,
If a method throws Exceptions that are not instances / subclasses of java.rmi.RemoteException, then it's not a SOAP Fault, but a wsdl:fault. This is the manner in which JAX-RPC handles the Exceptions.
Regards,
Sandeep
Similar Messages
-
Problem with Oracle Web Service Proxies reusing classes and exceptions
We have an application that have many web services and we're having a really hard time working with Oracle Web Service Proxy. We have many web services that share the same classes for parameters and exceptions. When we generate de proxy classes, it generates a lot of _LiteralSerializer classes. Because I'm reusing the same classes and exceptions it generates the same _LiteralSerializer classes for this classes and they get replaced. For Example
I have classes A and B and Web Services X and Y that use this classes. When I generate the 2 proxies it generates A_LiteralSerializer and B_LiteralSerializer on the 2 proxies and they get replaced and I get "No serlalizers for A class or B class". This problems repeats a lot of times and this problem is a huge risk for our project. We're using JDeveloper 10.1.3.4.
Is there a way to avoid this with Oracle Web Service Proxies?
Regards,
NéstorResolved when I create a deployement profile explicitly.
The Webservice.deploy that gets created automatically when I create a web service was giving this issue.
Thanks
Saikrishna -
Securing MIME WS with Oracle Web Services Manager
I try to secure a simple WS with receives and returns MIME attachment(picture).
WSDL:
<definitions
name="MIMEWS"
targetNamespace="http://MIMEWS"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://MIMEWS"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:types="http://MIMEWS/types"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
>
<message name="getPhotoRequest">
<part name="photo" type="xsd:hexBinary"/>
</message>
<message name="getPhotoResponse">
<part name="photoResponse" type="xsd:hexBinary"/>
</message>
<portType name="Photo">
<operation name="getPhoto">
<input message="tns:getPhotoRequest"/>
<output message="tns:getPhotoResponse"/>
</operation>
</portType>
<binding name="PhotoBinding" type="tns:Photo">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getPhoto">
<input>
<mime:multipartRelated>
<mime:part>
<soap:body use="literal"/>
</mime:part>
<mime:part>
<mime:content part="photo" type="image/jpeg"/>
</mime:part>
</mime:multipartRelated>
</input>
<output>
<mime:multipartRelated>
<mime:part>
<soap:body use="literal"/>
</mime:part>
<mime:part>
<mime:content part="photoResponse" type="image/jpeg"/>
</mime:part>
</mime:multipartRelated>
</output>
</operation>
</binding>
<service name="PhotoService">
<port name="PhotoPort" binding="tns:PhotoBinding">
<soap:address location="http://localhost:8888/ws_security-AttachmentWS-context-root/PhotoPort"/>
</port>
</service>
</definitions>
The WS works fine, but if i register it with Gateway, i cant invoke it anymore.
I always get the following error:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode xmlns:p="http://schemas.oblix.com/ws/2003/08/Faults">p:Client.GenericFault</faultcode>
<faultstring>Cannot Replace the To Soap Header</faultstring>
<detail/>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Can anyone help please?Hi
I guess no one responded to this.
I now have this problem, but it is only recent..... It appears to be tied up with Enterprise Manager security (?).
Did you ever get a response ? -
Best practice for integrating oracle atg with external web service
Hi All
What is the best practice for integrating oracle atg with external web service? Is it using integration repository or calling the web service directly from the java class using a WS client?
With Thanks & Regards
AbhishekUsing Integration Repository might cause performance overhead based on the operation you are doing, I have never used Integration Repository for 3rd Party integration therefore I am not able to make any comment on this.
Calling directly as a Java Client is an easy approach and you can use ATG component framework to support that by making the endpoint, security credentials etc as configurable properties.
Cheers
R
Edited by: Rajeev_R on Apr 29, 2013 3:49 AM -
Gateway in Oracle Web Service Manager
Hi,
Does anybody know a really usable document for gateways in Oracle Web Service Manager?
I tried to use the common Oracle's document to create a gateway and counfigure a tomcat-axis web service in it, but I could not manage it.
Supposing that I have a webservice on http://localhost:8088/axis/services/ExtService?wsdl
and I have a OWSM administrable on http://localhost:3115/ccore
what wuld be the steps to register my webservice into OWSM to be able to call my web service through OWSM?
thanx in advance,
AttilaHi Eric,
thank you for your answer.
Now I managed to authenticate the user with WS-BASE against LDAP server (ApacheDS), but, with the authorization I can not move on.
The structure of my Ldap entries is the following:
-> system
-> groups
-> tomcatCallers
attributes: cn: tomcatCallers
objectClass: groupOfUniqueNames
objectClass: top
uniqueMember: 0.9.2342.19200300.100.1.1=owsmuser,
0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
-> users
-> owsmuser
attributes: cn: OWSM user
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: top
sn: OWSM
uid: owsmuser
So, Authentication against owsmuser is OK, with parameters:
LDAP baseDN (*): ou=users,ou=system
Uid Attribute (*): uid
How should I configure the policy step Ldap Authorize?
I tried it with parameters:
LDAP baseDN (*): ou=system
ServiceRoles : tomcatCallers
Uid Attribute (*): uid
but it does not seem to work. I get the fault: 'Access Denied. User: owsmuser'
One more question :-) :
if I make a 2nd policy gateway with ID C0003002 and configure it in file
%OWSM_HOME%\j2ee\home\applications\gateway\gateway\WEB-INF\gateway-config-installer.properties
with propery gateway.component.id=C0003002 and restart the OWSM the gateway identified by C0003001 becomes unreachable.
How can I configure OWSM to eable all the gateways at the same time?
thanx in advance,
Attila
Edited by: user5329589 on Jul 1, 2010 5:04 AM -
Deploy pre-compiled client proxy with a web service
When a web service is deployed on an OAS server, the page at the endpoint URL includes a link to a proxy jar file (<endpoint url>?proxy_jar). I have a proxy jar that I've built and I'd like to be able to include it in my war file so that the proxy jar URL will download it instead of the server-generated one. Is there a way to do that?
I did something similar with the wsdl file: I included it in the war file in the same folder and filename as the web service interface class, but that didn't work for the proxy jar file.
-PeterHi Peter,
You cannot replace the proxy jar generated by the Oracle Web Services runtime with your own version. If you want to provide your own version, you will have to handle it as a classic resource in your .ear file, and advertize the location of this resource using some other mechanism.
-Eric -
OC4J client with WCF Web Service using Mutual Certificates
I'm trying to generate client stubs for a WCF web service.
I tried using docs here:
http://docs.oracle.com/cd/B10464_05/web.904/b10447/tools.htm
# OC4J 9.0.4
Java sdk 1.4.2_03
cd \dev\oc4j-9.0.4\webservices\lib
- config.xml
<?xml version="1.0"?>
<web-service>
<proxy-gen>
<proxy-dir>output/clientclass/examples/webservices/simple_client</proxy-dir>
<option name="include-source">true</option>
<option name="wsdl-location">
http://xxx.xxxxx.xxx:9000/WCFTestService/Service.svc?wsdl</option>
</proxy-gen>
</web-service>
java -jar WebServicesAssembler.jar -debug
- ends with NullPointerException:
<output>
Please wait ...
..parsing top level elements
..generating client side proxy for wsdl :
http://xxx.xxxxx.xxx:9000/WCFTestService/Service.svc?wsdl
....compiling client side proxy for package :proxy
Exception in thread "main" java.lang.NullPointerException
at oracle.j2ee.ws.tools.WsAssmProxyGenerator.doCompile(WsAssmProxyGenerator.java:284)
at oracle.j2ee.ws.tools.WsAssmProxyGenerator.processProxy(WsAssmProxyGenerator.java:135)
at oracle.j2ee.ws.tools.WsAssmProxyGenerator.clientGenerate(WsAssmProxyGenerator.java:112)
at oracle.j2ee.ws.tools.WsAssembler.assemble(WsAssembler.java:96)
at oracle.j2ee.ws.tools.WsAssembler.main(WsAssembler.java:54)
</output>
- Then tried using Sun jdk to gen proxy:
# Just SDK
Java sdk 1.6.0_25
wsimport -keep -extension -d output -s src -p examples.webservices http://xxx.xxxxx.xxx:9000/WCFTestService/Service.svc?wsdl
<ListOfGeneratedJavaFiles>
CompositeType.java
GetData.java
GetDataResponse.java
GetDataUsingDataContract.java
GetDataUsingDataContractResponse.java
IService.java
ObjectFactory.java
package-info.java
Service.java
</ListOfGeneratedJavaFiles>
- creates the service and port, but where is the stub?
in my code I use the stub to set the certificate auth
<codeSnip>
// get the ws stub
IService_Stub serviceStub = (IService_Stub)iSampleService;
// add the credential providers to the ws stub
serviceStub._setProperty(WSSecurityContext.CREDENTIAL_PROVIDER_LIST,
credProviders);
</codeSnip>
# WebLogic 10.3.5
I'm happy to say that everything seems to work well under WebLogic 10.3.5.
I used weblogic.wsee.tools.anttasks.ClientGenTask with ant
to generate the proxy files.
<ListOfGeneratedJavaFiles>
IService.java
IService_Stub.java
Service.java
Service_Impl.java
</ListOfGeneratedJavaFiles>
I understand how to use these files and everything works.
But we need this to work in the OC4J orion server before we are ready to upgrade to WebLogic.
I have also tried OC4J 10.1.2.0.2 - same a OC4j 9.0.4 - null pointer.
I also tried Metro, but it uses wsimport, so also does not have a stub.
I'm out of ideas. Any pointers or advice are greatly appreciated.
Thank you.My guess would be that the server's certificate isn't in your client's trust-store (which defaults to "cacerts"). Chances are your senior architect has already imported the server-cert on his machine and forgotten he did so.
Grant -
Error in Calling Oracle Web Service through Eclipse-indigo
Hi All,
I'm getting an below error when trying to call my oracle web service through Eclipse-indigo.
Error:-
IWAB0135E An unexpected error has occurred.
502
Bad Gateway
Steps followed to create oracle web service and invoke WS :-
Followed link
http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb_web_services.htm
which explans how to create oracle web service.
1. Configure HTTP Access
2. Configure the ORAWSV Servlet
3. created user 'test' and wrote simple procedure getdescription which will return name for request id.
4. granted all privilages to user.
5. The orawsv servlet automatically generates a WSDL file.
6. trying to call WS through Eclipse-indigo, but i get error.Trying to test via PL/SQL first via (see the following url for more info: Re: Using utl_dbws to call web service ) for example something like the following:
SQL> set serveroutput on
SQL> --
SQL> def USERNAME=DBNWS
SQL> --
SQL> DECLARE
2 V_SOAP_REQUEST XMLTYPE := XMLTYPE(
3 '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/
encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4 <SOAP-ENV:Body>
5 <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/&USERNAME/GET_SQRT">
6 <m:INPUT_VALUE-NUMBER-IN>2</m:INPUT_VALUE-NUMBER-IN>
7 </m:SNUMBER-GET_SQRTInput>
8 </SOAP-ENV:Body>
9 </SOAP-ENV:Envelope>');
10 V_SOAP_REQUEST_TEXT CLOB := V_SOAP_REQUEST.getClobVal();
11 V_REQUEST UTL_HTTP.REQ;
12 V_RESPONSE UTL_HTTP.RESP;
13 V_BUFFER VARCHAR2(1024);
14 BEGIN
15
16 V_REQUEST := UTL_HTTP.BEGIN_REQUEST(URL => :URL, METHOD => 'POST');
17 UTL_HTTP.SET_HEADER(V_REQUEST, 'User-Agent', 'Mozilla/4.0');
18 V_REQUEST.METHOD := 'POST';
19 UTL_HTTP.SET_HEADER (R => V_REQUEST, NAME => 'Content-Length', VALUE => DBMS_LOB.GETLENGTH(V_SOAP_REQUEST_TEXT));
20 UTL_HTTP.WRITE_TEXT (R => V_REQUEST, DATA => V_SOAP_REQUEST_TEXT);
21
22 V_RESPONSE := UTL_HTTP.GET_RESPONSE(V_REQUEST);
23 LOOP
24 UTL_HTTP.READ_LINE(V_RESPONSE, V_BUFFER, TRUE);
25 DBMS_OUTPUT.PUT_LINE(V_BUFFER);
26 END LOOP;
27 UTL_HTTP.END_RESPONSE(V_RESPONSE);
28 EXCEPTION
29 WHEN UTL_HTTP.END_OF_BODY THEN
30 UTL_HTTP.END_RESPONSE(V_RESPONSE);
31 END;
32 /
old 5: <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/&USERNAME/GET_SQRT">
new 5: <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT">
<?xml version="1.0" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GET_SQRTOutput xmlns="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT">
<RETURN>1.41421356237309504880168872420969807857</RETURN>
</GET_SQRTOutput>
</soap:Body>
</soap:Envelope>
PL/SQL procedure successfully completed.
SQL> set serveroutput on
SQL> --In the example give above the WSDL info should be seen via http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT?wsdl -
Confirming method to secure web services through oracle web service manager
Hi All,
I am just wondering about the method to secure web service through oracle web service manager.
I have a unsecure web service "helloworld" which is deployed on JWSDP1.6 toolkit.I want to secure it through oracle web service manager.
Inorder to secure this unsecure web service,I use gateway(web service manager for securing web service using message level security through certificate).
So when client want to access the helloworld service,it contacts the gateway securely and gateway intern connect to original web service after decrypting and verification of the signature.When gateway gets response from the web service,it signs the response message and then encrypt and passs on to the client.
So my question is,is it the right way to secure web service?
As I am getting the following fault exception :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode "http://schemas.oblix.com/ws/2003/08/Faults">c</faultcode>
<faultstring>Step execution failed with an exception
</faultstring>
<detail></detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I checked the log at :
C:\coresv_install_home\external\oc4j-10.1.2.0.0\j2ee\home\log\http-web-access
but there is no helpful information available.Thanks for any help.
KashHi Rajesh,
Thanks for your reply.I am using the following policy steps:
1)for Request (Decrypt and Verify signature).
2)for Response(Sign Message and Encrypt).
The configuration for Request is shown below:
Pipeline "Request"
Pipeline Steps:
Start Pipeline
Log
Decrypt and Verify Signature
Basic Properties Type Default Value
Enabled (*) boolean true true
XML Decryption Properties Type Default Value
Decryptor''s keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-keystore.jks
Decrypt Keystore Type (*) string jks jks
Decryptor''s keystore password string *******
Decryptor''s private-key alias (*) string s1as
Decryptor''s private-key password string *******
Enforce Encryption (*) boolean true true
XML Signature Verification Properties Type Default Value
Verifying Keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-truststore.jks
Verifying Keystore type (*) string jks jks
Verifying Keystore password string *******
Signer''s public-key alias (*) string xws-security-client
Enforce Signing (*) boolean true true
End Pipeline
And the configuration for Response is shown below:
Pipeline "Response"
Pipeline Steps:
Start Pipeline
Log
Sign Message and Encrypt
Basic Properties Type Default Value
Enabled (*) boolean true true
Signing Properties Type Default Value
Signing Keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-keystore.jks
Signing Keystore Type (*) string jks jks
Signing Keystore password string *******
Signer''s private-key alias (*) string s1as
Signer''s private-key password string *******
Signed Content (*) string BODY BODY
Sign XPATH Expression string
Sign XML Namespace string[]
Encryption Properties Type Default Value
Encryption Keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-truststore.jks
Encrypt Keystore Type (*) string jks jks
Encryption Keystore password string *******
Decryptor''s public-key alias (*) string xws-security-client
Encrypted Content (*) string BODY BODY
Encrypt XPATH Expression string
Encrypt XML Namespace string[]
End Pipeline
I checked the log again but nothing useful there,it is just giving the following values:
2006-08-14 16:32:50,372 INFO [Thread-21] mstore.OLiteMStore - SELECT MEASUREMENT_STR FROM MEASUREMENT_PERSISTED_STORE WHERE ID=? FOR UPDATE
2006-08-14 16:34:50,364 INFO [Thread-16] mstore.OLiteMStore - INSERT INTO MEASUREMENT_PERSISTED_STORE (ID,DEF_ID,CONTEXT_ID,PARENT_CONTEXT_ID,TIME,STORETIME,KEY0,KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,KEY8,KEY9,KEY10,KEY11,KEY12,KEY13,KEY14,KEY15,KEY16,KEY17,KEY18,KEY19,KEY20,KEY21,KEY22,KEY23,KEY24,KEY25,KEY26,KEY27,KEY28,KEY29,KEY30,KEY31,KEY32,KEY33,KEY34,KEY35,KEY36,KEY37,KEY38,KEY39,DBM0,MEASUREMENT_STR) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'R',empty_clob())
2006-08-14 16:34:50,364 INFO [Thread-16] mstore.OLiteMStore - SELECT MEASUREMENT_STR FROM MEASUREMENT_PERSISTED_STORE WHERE ID=? FOR UPDATE
Any help would be appreciated.Thanks.
Kash -
Problem with RESTful web service
I am running into a problem with Flex Web Services (REST) in trying to get the proper format returned. I can see that the HTTP header is set to
Accept: */*;
rather than
Accept: application/xml
when sending the request. The web service was generated via the web services HTTP data services wizard. I edited it to set the resultFormat to xml
// Constructor
public function _Super_UsersService()
// initialize service control
_serviceControl = new mx.rpc.http.HTTPMultiService();
var operations:Array = new Array();
var operation:mx.rpc.http.Operation;
var argsArray:Array;
operation = new mx.rpc.http.Operation(null, "getUsers");
operation.url = "http://localhost:8888/users";
operation.contentType = "";
operation.method = "GET";
operation.resultFormat = "xml";
//operation.serializationFilter = serializer0;
operation.properties = new Object();
operation.properties["xPath"] = "/";
operation.resultType = valueObjects.Users;
operations.push(operation);
_serviceControl.operationList = operations;
model_internal::initialize();
How does one configure the accept header?Hi,
I have posted a simple application with the RESTful reference:
http://apex.oracle.com/pls/apex/f?p=13758
I can give you full privileges on this so you can look at the WEB service reference. Shall I send to you separately for login user?
It is using the RESTful service: http://apex.oracle.com/pls/apex/nd_pat_miller/demo/employee/{deptno}
This RESTful service tests fine when I test from within the RESTful web service module of the Workspace.
I based this on the Video demo tutorial for RESTful web service that Oracle published for 4.2 release. The video seemed to exclude the {deptno} in the URL but when I try that, it doesn't work either.
This is the error I am getting when I run this on my Apex environment: (it, of course, will not run the web service in the apex.oracle.com environment)
class="statusMessage">Bad Request</span>
</h3>
</div>
</div>
<div id="xWhiteContentContainer" class="xContentWide">
<div class="xWhiteContent">
<div class="errorPage">
<p>
<ul class="reasons"><li class="badRequestReason"><span class="target" style="display:none;">uri</span><span class="reason">Request path contains unbound parameters: deptno</span></li>
</ul>Thanks,
Pat
Edited by: patfmnd on May 8, 2013 3:33 AM -
"no serializer is registered..." error with a web service not working
I'm using JDeveloper 10.1.3
EJB 3.0
I'm having issues with the web service not working after I create a client for it. The web service works fine up until I generate the proxy on the other side.
ERROR An error occurred for port: {http://buslogic/}MyWebService1SoapHttpPort: no serializer is registered for (class buslogic.runtime.....
I saved the file before I added the proxy and the wsdl looks the same between the working one and the non working one. I can not pin point the when the change to the web service is occuring. It seemed to work once all the way up until I had a ADF page trying to retrieve data, another time it failed when the proxy was created.
I can get the version that I saved to work immediately after the version that does not fails.
Any help would be greatly appreciated,
DanI'm using JDeveloper 10.1.3
EJB 3.0
I'm having issues with the web service not working after I create a client for it. The web service works fine up until I generate the proxy on the other side.
ERROR An error occurred for port: {http://buslogic/}MyWebService1SoapHttpPort: no serializer is registered for (class buslogic.runtime.....
I saved the file before I added the proxy and the wsdl looks the same between the working one and the non working one. I can not pin point the when the change to the web service is occuring. It seemed to work once all the way up until I had a ADF page trying to retrieve data, another time it failed when the proxy was created.
I can get the version that I saved to work immediately after the version that does not fails.
Any help would be greatly appreciated,
Dan -
Nyone who had success using sign-encrypt policy(oracle web service manager)
Hi All,
I could not succeed in using sign Message and Encrypt and decrypt and verify signature policy using oracle web services manager.So I would be grateful if somebody who had success in using it would shed light on its use.
Basically,I am using the following policy steps in securing a helloworld web service using gateway(oracle web services manager) :
1)for Request (Decrypt and Verify signature).
2)for Response(Sign Message and Encrypt).
The configuration for Request is shown below:
Pipeline "Request"
Pipeline Steps:
Start Pipeline
Log
Decrypt and Verify Signature
Basic Properties Type Default Value
Enabled (*) boolean true true
XML Decryption Properties Type Default Value
Decryptor''s keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-keystore.jks
Decrypt Keystore Type (*) string jks jks
Decryptor''s keystore password string *******
Decryptor''s private-key alias (*) string s1as
Decryptor''s private-key password string *******
Enforce Encryption (*) boolean true true
XML Signature Verification Properties Type Default Value
Verifying Keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-truststore.jks
Verifying Keystore type (*) string jks jks
Verifying Keystore password string *******
Signer''s public-key alias (*) string xws-security-client
Enforce Signing (*) boolean true true
End Pipeline
And the configuration for Response is shown below:
Pipeline "Response"
Pipeline Steps:
Start Pipeline
Log
Sign Message and Encrypt
Basic Properties Type Default Value
Enabled (*) boolean true true
Signing Properties Type Default Value
Signing Keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-keystore.jks
Signing Keystore Type (*) string jks jks
Signing Keystore password string *******
Signer''s private-key alias (*) string s1as
Signer''s private-key password string *******
Signed Content (*) string BODY BODY
Sign XPATH Expression string
Sign XML Namespace string[]
Encryption Properties Type Default Value
Encryption Keystore location (*) string C:\Sun\jwsdp-2.0\xws-security\etc\server-truststore.jks
Encrypt Keystore Type (*) string jks jks
Encryption Keystore password string *******
Decryptor''s public-key alias (*) string xws-security-client
Encrypted Content (*) string BODY BODY
Encrypt XPATH Expression string
Encrypt XML Namespace string[]
End Pipeline
But I am getting the following fault exception while accessing this secure web service :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode "http://schemas.oblix.com/ws/2003/08/Faults">c</faultcode>
<faultstring>Step execution failed with an exception
</faultstring>
<detail></detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I would appreciate your help.Thanks.
KashHi clemens,
Actually I installed OracleWebServices_Manager_4_0_3 and I see my installation directory does not contain any of the directory structure you mention.
It installed oracle web services manager in the following location:
C:\coresv_install_home
and it contains the following subdirectories:
1)bin
2)config
3)db
4)ears
5)external
6)extlicences
7)lib
8)samples
9)scripts
10)wars
So I like to ask did you install the same version of the oracle web services manager, if not which version you install in which security is working for you.Thanks for any help.
Kash -
Basic auth with RESTful WEb service and Web Service reference
Hi, All,
We have made much progress on getting an application working wtih RESTful web services but now are trying to figure out how to lock down a RESTful Web service while making it available for a particular application.
We are using one of the sample 'emp' table web services that come with Apex 4.2 and are trying to apply Basic Auth to the WEb Service via Weblogic filter defined in the web.xml file. That works fine. I now get challenged when I try to go to :
https://wlogic.edu/apex/bnr/ace/hr/empinfo/
And when I authenticate to that challenge I am able to get the data. (we are usiing LDAP authentication at the Weblogic level)
However, I am not sure how to get same basic authentication to work with the Web Service reference in my application. I see the error message in the application when I try to call that Web Service:
401--Unauthorized<
And I see:
"The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.46) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials"
How do I provide the credentials in the Web REference or do I provide credentials in the Application?
Web service works fine if I remove the RESTful web service basic auth from the Web.xml file.
Should we NOT use Weblogic basic auth and instead use basic auth from Workspace RESTful web service definition. If so, how do we implement THAT basic auth in the Web Service definition and in the Web SErvice Reference on the application?
Thanks,
PatWhat I mean is diid you try to use the PL/SQL package for APEX webservice. Here is an example I use (modified and shortened, just to show how much better this is than to use it from the application).
CREATE OR REPLACE PACKAGE webservice_pkg
IS
PROCEDURE create_webservice (
p_id IN NUMBER,
p_message OUT VARCHAR2,
p_workspace IN VARCHAR2 DEFAULT 'MY_WORKSPACE',
p_app_id IN NUMBER DEFAULT v ('APP_ID'),
p_app_session IN VARCHAR2 DEFAULT v ('SESSION'),
p_app_user IN VARCHAR2 DEFAULT v ('APP_USER')
END webservice_pkg;
CREATE OR REPLACE PACKAGE BODY webservice_pkg
IS
PROCEDURE set_credentials (
p_workspace IN VARCHAR2,
p_app_id IN NUMBER,
p_app_session IN VARCHAR2,
p_app_user IN VARCHAR2
IS
v_workspace_id NUMBER;
BEGIN
SELECT workspace_id
INTO v_workspace_id
FROM apex_workspaces
WHERE workspace = p_workspace;
apex_util.set_security_group_id (v_workspace_id);
apex_application.g_flow_id := p_app_id;
apex_application.g_instance := p_app_session;
apex_application.g_user := p_app_user;
END set_credentials;
PROCEDURE create_webservice (
p_id IN NUMBER,
p_message OUT VARCHAR2,
p_workspace IN VARCHAR2 DEFAULT 'MY_WORKSPACE',
p_app_id IN NUMBER DEFAULT v ('APP_ID'),
p_app_session IN VARCHAR2 DEFAULT v ('SESSION'),
p_app_user IN VARCHAR2 DEFAULT v ('APP_USER')
IS
v_envelope VARCHAR2 (32000);
v_server VARCHAR2 (400);
v_url VARCHAR2 (4000);
v_result_url VARCHAR2 (1000);
v_collection_name VARCHAR2 (40) := 'PDF_CARD';
v_message VARCHAR2 (4000);
v_xmltype001 XMLTYPE;
BEGIN
v_url := v_server || '.myserver.net/services/VisitCardCreator?wsdl';
FOR c IN (SELECT *
FROM DUAL)
LOOP
v_envelope :=
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" '
|| 'xmlns:bran="http://www.myaddress.com">'
|| CHR (10)
|| '<soapenv:Header/><soapenv:Body>'
|| CHR (10)
|| '<parameter:'
|| 'some_value'
|| '>'
|| CHR (10)
|| '<bran:templateID>'
|| p_id
|| '</bran:templateID>'
|| '</soapenv:Body>'
|| CHR (10)
|| '</soapenv:Envelope>';
END LOOP;
set_credentials (p_workspace, p_app_id, p_app_session, p_app_user);
BEGIN
apex_web_service.make_request
(p_url => v_url,
p_collection_name => v_collection_name,
p_envelope => v_envelope
p_message := 'Some message.';
EXCEPTION
WHEN OTHERS
THEN
v_message :=
v_message
|| '</br>'
|| 'Error running Webservice Request. '
|| SQLERRM;
END;
BEGIN
SELECT v_result_url
|| EXTRACTVALUE (VALUE (t),
'/*/' || 'Return',
'xmlns="http://www.myaddress.com"'
xmltype001
INTO v_result_url,
v_xmltype001
FROM wwv_flow_collections c,
TABLE
(XMLSEQUENCE (EXTRACT (c.xmltype001,
'//' || 'Response',
'xmlns="http://www.myaddress.com"'
) t
WHERE c.collection_name = v_collection_name;
EXCEPTION
WHEN OTHERS
THEN
v_message := v_message || '</br>' || 'Error reading Collection.';
END;
EXCEPTION
WHEN OTHERS
THEN
p_message := v_message || '</br>' || SQLERRM;
END create_webservice;
END webservice_pkg;
/If you use it this way, you will find out what the problem is much faster.
Denes Kubicek
http://deneskubicek.blogspot.com/
http://www.apress.com/9781430235125
http://apex.oracle.com/pls/apex/f?p=31517:1
http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
------------------------------------------------------------------- -
How to Use SOAPArray to Exchanged Data with a Web Service
The method of a prototype Web service I created is defined to take many parameters
and return an object of a user defined class. Furthermore, the user defined class
includes data elements of another user defined class and the Java ArrayList class.
This works with a Java client referencing the WebLogic created client.jar file
but I don't know how well it will work with a non-Java client. In particular,
with Perl which is the language that will be used by the developer who first will
test with the prototype.
In posts to this newsgroup use of "language-specific, generic containers" has
been discouraged and the "language-agnostic" SOAPArray recommended. I have searched
this newgsroup and the Web for examples of how to use a SOAPArray in a Web service
EJB to receive parameters and return results but found none.
Will someone refer me to an example or give an overview of how a Java Web service
EJB running in WebLogic 6.1 would use SOAPArray to get parameter values and return
results?
Also, I would like confirmation that it is best to use SOAPArray to exchange data
with a Web service to achieve the goal of a service accessible by any language.
Thank you.Replies in-line:
How are the structures, e.g. gltrans-workType, defined in the Web service?The structure is made up of nested Java Beans, but this does not mean that the
client for your web service has to be written in Java. The WSDL that I sent contains
everything that a .NET-based (or Perl-based, or Python-based, or VB-based, or
C++ based) Web Service Stack needs to correctly create all the data types in the
web services' signature! That's the beauty of XML Schema! It's programming language
independent :-)
In
other words, what definition in Java resulted in the WSDL statements?The WSDL wasn't produced by WLS 6.1, but it (WLS 6.1) can consume it.
What is the signature of method submitGLTransWorkAsJavaBean() in the
Web service?public void submitGLTransWorkAsJavaBean(GlTransactionsCpyType glTransactionsCpyType)
GlTransactionsCpyType is the outer-most Java Bean. WLS 6.1 does not generate
Java Beans for you, but it will use ones that you defined. See the Java Bean tutorial
on the Javasoft sitem for details on how to create a Java Bean.
Was the WSDL generated using the WL tools for creating a Web service?No.
Conclusion:
You asked for someone to provide you with an example of how to use SOAP array
in a WSDL, which is what the attached file contained :-) What you want to do now
is find a tool that can generate Java Bean code from this WSDL (Apache Axis has
a wsdl2java tool that should work), or create the Java Beans yourself. Afterwards,
create a WLS 6.1 Web Service a expose it for a Perl or .NET client.
Regards,
Mike Wooten
"Jeff Carey" <[email protected]> wrote:
>
Please elaborate.
How are the structures, e.g. gltrans-workType, defined in the Web service?
In
other words, what definition in Java resulted in the WSDL statements?
What is the signature of method submitGLTransWorkAsJavaBean() in the
Web service?
Was the WSDL generated using the WL tools for creating a Web service?
Thank you.
"Michael Wooten" <[email protected]> wrote:
Hi Jeff,
Sounds like a pretty cool prototype :-)
I have attached a WSDL (at the bottom of this post) that contains a<schema>
that
uses a SOAPArray to create an array of a <complexType>.
HTH,
Mike Wooten
"Jeff Carey" <[email protected]> wrote:
The method of a prototype Web service I created is defined to take
many
parameters
and return an object of a user defined class. Furthermore, the user
defined class
includes data elements of another user defined class and the Java ArrayList
class.
This works with a Java client referencing the WebLogic created client.jar
file
but I don't know how well it will work with a non-Java client. Inparticular,
with Perl which is the language that will be used by the developerwho
first will
test with the prototype.
In posts to this newsgroup use of "language-specific, generic containers"
has
been discouraged and the "language-agnostic" SOAPArray recommended.
I have searched
this newgsroup and the Web for examples of how to use a SOAPArray in
a Web service
EJB to receive parameters and return results but found none.
Will someone refer me to an example or give an overview of how a Java
Web service
EJB running in WebLogic 6.1 would use SOAPArray to get parameter values
and return
results?
Also, I would like confirmation that it is best to use SOAPArray toexchange
data
with a Web service to achieve the goal of a service accessible by any
language.
Thank you. -
Fault Handling in Web Services
Hi,
Can anyone please point me to any document which explains about the fault handling in Web Services using Bottom-up Approach?
ThanksCan you give some further information?
Do you want to throw a fault an your webservice and you are asking how this fault is seen by the service requestor? If you throw a exception it is mapped to
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="RuntimeFault" targetNamespace="http://schemas.oracle.com/bpel/extension" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="RuntimeFaultMessage">
<part name="code" type="xsd:string"/>
<part name="summary" type="xsd:string"/>
<part name="detail" type="xsd:string"/>
</message>
</definitions>
Have you tried
http://www.oracle.com/technology/products/ias/bpel/pdf/orabpel-Training-Segment06.pdf?
This is top down but perhaps you can learn from it.
Maybe you are looking for
-
Cant't get my ipod nano 6th gen to stop repeating
I use the shuffle on the playlists,songs,genres,albums etc and when a song plays it repeats itself. I don't know what I did but I would like to turn off the repeat of the song..any help with this? I cant seem to find it on this new nano.thanks
-
Logitech Marble Mouse scrollwheel emulation
Before I open a Wiki account*, can anyone else confirm that it only works over USB? I can't remember how long I've had this thing, and I even have a vague feeling I came up against this problem before I installed Arch, but I always assumed I must hav
-
Why does the following query runs even after error in each loop ? declare @i int set @i = 100 declare @sql varchar(255) while @i > 0 begin set @sql = 'select * from faketable' exec(@sql) print @i set @i = @i - 1; end
-
"Gaps" in photo stream on iPhoto
I am working with pictures I took on a recent vacation, some of which I uploaded from my camera and some of which were taken with my iPhone. When I went to my current photo stream on iPhoto, I noticed that not all of the pictures on my iPhone photost
-
I use OSX Maverick, and whenever I try to update an app on the my MacBook Pro, this message comes up: We could not complete your request. There was an error in the App Store. Please try again later. (13). Is there something I have to do to fix this,