Generating Web Service from PL/SLQL procedures using ODSI
1) Is there a way for us to generate REST based web services from PL/SQL procedures using Oracle data services Integrator? If Yes, Can you please point me to any available documentation
2) I am trying to create a phyiscal data source based on PL/SQL procedures in the hope of turning these data sources into web services. I created a JDBC connection in web logic server console and am trying to view the packages under APPS but ODSI always crashes after selecting APPS. Is there a way to resolve this?
Thanks
Bhanu
Hi..
We came accross this problem a while back (I think it was us that the patch was created for). The patch was released under CR369707.
Additionally it took us a while to figure out how to use it correctly.. Here's the info for it from a mail i receievd from our support contact..
Here is more information from engineering on the patch:
This is patch for filtering Stored Procedures in the New Physical Data Service Wizard. It is a partial fix to the problem. It just does filtering - it still retrieves all the jdbc metadata for everything that matches the filter. Ideally, the wizard would let you explore the stored procedures - retrieving the name only - and once you selected a stored procedure, it would retrieve the argument types (which is the expensive part).
Copy these two files to a safe place
<bea_home>\<aldsp_home>\eclipse-plugins\dsp\eclipse\plugins\com.bea.dsp.ide.external_10.3.0\dsp-ide-ldshredder.jar
<bea_home>\<aldsp_home>\eclipse-plugins\dsp\eclipse\plugins\com.bea.dsp.ide.import_metadata_10.3.0.jar
Replace the files with the ones provided in the patch (which I sent you be eMail recently).
Creating Relational Database Physical Data Services -> Stored Procedures will be affected as follows :
The Search field used to represent a pattern for the stored procedures only, and this patterns were applied against every schema visible to ALDSP. The patch allows you to also specify a list of catalogue patterns (useful only when applicable), a list of schema patterns and a list of procedure name patterns. These lists are separated by the pipe symbol, and the lists themselves are command-separated. The catalogue and schema patterns are regular expressions, the procedure pattern is for a database 'like' clause. For, Oracle, the catalogue patterns are not applicable.
Example:
|ODM1,ODM2|B% // look in schemas containing the strings ODM1 or ODM2 for procedures that start with B
// possible results would be MY_ODM1.BUILDER, ODM2.BOTTOM
|^ODM$|B%D // look in the ODM schema for procedures that start with B and end with D.
Also - if there is a search string in the Search box, that search string will be applied to the schema when you click on the + to expand it in the Tree.
Note that once a schema has been 'explored' - either by a search, or by expanding it in the tree, further searches will not update it's children. You would need to quit the wizard and restart.
Once you get the patch if you have issues let me know..
Similar Messages
-
Have problem when generate Web Service from bapi function
Dear all,
Please kindly help me about generating Web Service from BAPI function, It does not success only this attached function.
I have done so many function without any problems.
I found 1 case that I use specific variable to be an import/ export then, it can't create as well.
As for this one, I try so many changes but I can't success it as well.
This is my function on R/3 4.6C, Dot net connector 2.0, Dot net Frame Work 1.1.
FUNCTION Z_BAPI_ATTACHMENT_CREATE.
""Local interface: Type: Remote-enabled module
*" IMPORTING
*" VALUE(P_BOTYPE) LIKE BORIDENT-OBJTYPE
*" VALUE(P_BO_ID) LIKE BORIDENT-OBJKEY
*" VALUE(P_MSGTYP) LIKE SOFM-DOCTP
*" VALUE(P_DOCTY) LIKE BORIDENT-OBJTYPE
*" VALUE(P_RELTYP) LIKE BRELTYP-RELTYPE
*" VALUE(P_FNAME) LIKE RLGRAP-FILENAME
*" VALUE(P_OBJDES) TYPE SO_OBJ_DES
*" EXPORTING
*" VALUE(RETURNMESSAGE) TYPE CHAR50
INCLUDE : <cntn01>.
P_BOTYPE TYPE BORIDENT-OBJTYPE DEFAULT 'BUS2105'
P_BO_ID TYPE BORIDENT-OBJKEY
P_MSGTYPE TYPE SOFM-DOCTP DEFAULT 'URL'
P_DOCTY TYPE BORIDENT-OBJTYPE DEFAULT 'MESSAGE'
P_RELTYP TYPE BRELTYP-RELTYPE DEFAULT 'ATTA'
P_FNAME TYPE RLGRAP-FILENAME
P_OBJDES TYPE SO_OBJ_DES
TYPES: BEGIN OF ty_message_key,
foltp TYPE so_fol_tp,
folyr TYPE so_fol_yr,
folno TYPE so_fol_no,
doctp TYPE so_doc_tp,
docyr TYPE so_doc_yr,
docno TYPE so_doc_no,
fortp TYPE so_for_tp,
foryr TYPE so_for_yr,
forno TYPE so_for_no,
END OF ty_message_key.
DATA : lv_message_key TYPE ty_message_key.
DATA : lo_message TYPE swc_object.
DATA : lt_doc_content TYPE STANDARD TABLE OF soli-line
WITH HEADER LINE.
First derive the Attachment's ( MESSAGE )document type.
p_docty = 'MESSAGE'.
CASE p_reltyp.
In case of URls
WHEN 'URL'.
p_msgtyp = 'URL'.
In case of Notes / Private Notes
WHEN 'NOTE' OR 'PNOT'.
p_msgtyp = 'RAW'.
WHEN 'ATTA'.
Take given parameter e.g. 'DOC', 'PDF' etc.
P_MSGTYP = 'EXT'.
WHEN OTHERS.
....exit
EXIT.
ENDCASE.
Create an initial instance of BO 'MESSAGE' - to call the
instance-independent method 'Create'.
swc_create_object lo_message 'MESSAGE' lv_message_key.
define container to pass the parameter values to the method call
in next step.
swc_container lt_message_container.
Populate container with parameters for method
swc_set_element lt_message_container 'DOCUMENTTITLE' p_objdes.
swc_set_element lt_message_container 'DOCUMENTLANGU' 'E'.
swc_set_element lt_message_container 'NO_DIALOG' 'X'.
swc_set_element lt_message_container 'DOCUMENTNAME' p_docty.
swc_set_element lt_message_container 'DOCUMENTTYPE' p_msgtyp.
In case of URLs..it should be concatenated with &KEY& in the begining.
CASE p_msgtyp.
WHEN 'URL'.
lt_doc_content = '&KEY&http://www.rmtiwari.com' .
CONCATENATE '&KEY&' p_fname INTO lt_doc_content.
APPEND lt_doc_content.
In case of Notes or Private Notes, get the data from files on appl
server or from wherever(? - remember background).
WHEN 'RAW'.
lt_doc_content = p_fname.
APPEND lt_doc_content.
In case of PC File attachments
WHEN OTHERS.
OPEN DATASET p_fname FOR INPUT IN BINARY MODE.
IF sy-subrc EQ 0.
DO.
READ DATASET p_fname INTO lt_doc_content. "2 of 27
IF sy-subrc EQ 0.
APPEND lt_doc_content.
ELSE.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET p_fname.
ENDIF.
ENDCASE.
'DocumentContent' is a multi-line element ( itab ).
swc_set_table lt_message_container 'DocumentContent' lt_doc_content.
Size is required in case of File attachments
DATA : lv_doc_size TYPE i.
DATA : l_file_lines TYPE i.
DESCRIBE TABLE lt_doc_content LINES l_file_lines.
READ TABLE lt_doc_content INDEX l_file_lines.
lv_doc_size = ( 255 * ( l_file_lines - 1 ) ) +
STRLEN( lt_doc_content ).
swc_set_element lt_message_container 'DOCUMENTSIZE' lv_doc_size .
Refresh to get the reference of create 'MESSAGE' object for attachment
swc_refresh_object lo_message.
swc_call_method lo_message 'CREATE' lt_message_container.
Get Key of new object
swc_get_object_key lo_message lv_message_key.
Now we have attachment as a business object instance. We can now
attach it to our main business object instance.
Create main BO object_a
data: LO_IS_OBJECT_A type SIBFLPORB. "type SIBFLPORB is unknown, so I
DATA: lo_is_object_a TYPE borident.
lo_is_object_a-objkey = p_bo_id.
lo_is_object_a-objtype = p_botype.
LO_IS_OBJECT_A-CATID = 'BO'.
Create attachment BO object_b
data: LO_IS_OBJECT_B type SIBFLPORB. "type SIBFLPORB is unknown
DATA: lo_is_object_b TYPE borident.
lo_is_object_b-objkey = lv_message_key.
lo_is_object_b-objtype = p_docty.
LO_IS_OBJECT_B-CATID = 'BO'.
*TRY.
*CALL METHOD CL_BINARY_RELATION=>CREATE_LINK
EXPORTING
IS_OBJECT_A = LO_IS_OBJECT_A
IS_OBJECT_B = LO_IS_OBJECT_B
IP_RELTYPE = P_RELTYP.
CALL FUNCTION 'BINARY_RELATION_CREATE'
EXPORTING
obj_rolea = lo_is_object_a
obj_roleb = lo_is_object_b
relationtype = p_reltyp
EXCEPTIONS
OTHERS = 1.
Check if everything OK...who cares!!
COMMIT WORK.
if sy-subrc = 0.
RETURNMESSAGE = 'S-Success'.
else.
RETURNMESSAGE = 'E-Error'.
endif.
ENDFUNCTION.
Thanks in advance,
Benjawan
Edited by: Nitipat Chadchavalpanichaya on Oct 20, 2008 9:02 AMThere is no any error message show up. It just the class
Z_BAPI_ATTACHMENT_CREATE doesn't create autometically as normal. I showed you as below.
That means I can't call class z_bapi_attachment_create.
' <autogenerated>
' This code was generated by a SAP. NET Connector Proxy Generator Version 2.0
' Created at 21/10/2551
' Created from Windows
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </autogenerated>
Imports System
Imports System.Text
Imports System.Collections
Imports System.ComponentModel
Imports System.Runtime.InteropServices
Imports System.Xml.Serialization
Imports System.Web.Services
Imports System.Web.Services.Description
Imports System.Web.Services.Protocols
Imports SAP.Connector
'@ <summary>
'@ Client SAP proxy class
'@ </summary>
<WebServiceBinding(Name:="dummy.Binding", Namespace:="urn:sap-com:document:sap:rfc:functions")> _
Public Class PRAttachment
Inherits SAPClient
'@ <summary>
'@ Initializes a new PRAttachment.
'@ </summary>
Public Sub New()
End Sub
'@ <summary>
'@ Initializes a new PRAttachment with a new connection based on the specified connection string.
'@ </summary>
'@ <param name="connectionString">A connection string (e.g. RFC or URL) specifying the system where the proxy should connect to.</param>
Public Sub New(ByVal ConnectionString As String)
MyBase.New(ConnectionString)
End Sub
'@ <summary>
'@ Initializes a new PRAttachment and adds it to the given container.
'@ This allows automated connection mananged by VS component designer:
'@ If container is disposed, it will also dispose this SAPClient instance,
'@ which will dispose a contained connection if needed.
'@ </summary>
'@ <param name="Cont">The container where the new SAPClient instance is to be added.</param>
Public Sub New(ByVal Cont As Container)
MyBase.New(Cont)
End Sub
End Class -
I generated web service from function module.Where can I find .wsdl file ?
Hi,
I generated web service from function module.
Where can I find .wsdl file ?
I want to use .wsdl file in .Net application.
Thanks.Hii Cemil Bozlagan,
All Remote enabled Function Modules in Web AS 6.20 and Above are available as Webservices and the WSDL documents are available in the web service repository at
[http://<host>:<port>/sap/bc/bsp/sap/webservicebrowser/search.html]
Find the respective BAPI.
Click on the WSDL link in the browser and download the WSDL document and use it as per the requirement
Regards,
Varun -
Creating web service from pl/sql procedure
Hello.
I need to create a web service from pl/sql procedure and i chose JDeveloper for this implementation. I have wsdl, but I never created web services. So, I created web service with document/literal message format.
But I have several troubles:
1. All element names have lower case letters.
2. The SOAP envelope must begin from words soapenv:Envelope but i have soap:Envelope.
3. And operation name has tail like "Element".
I know bad way for implement 1 and 3 points. It's a modification of java_wsdl_mapping.xml and wsdl files. But if I want to add new method to my service all changes will be cleaned. It's not critical but inconvenient to support.
But for point 3 i have no ideas.
This task is very important for me. Can somebody help me?
JDeveloper 10.1.3.3
Regards,
Alekseyhttp://www.oracle.com/technology/obe/obe1013jdev/10131/wsfromplsqlpackage/devwsfrom%20plsql.htm
Frank -
Error when trying to create a web service from a wsdl file using jdeveloper
Hello,
I'm using the latest jdeveloper and jdk 6 update 20 on solaris sparc 10.
When I'm trying to create a web service from a wsdl on the java EE 1.5 platform i get the following error:
Validation failed:
java.lang.NoSuchMethodException: com.sun.tools.xjc.generator.annotation.spec.XmlElementRefWriter.required(boolean)
I've tried the endorsed mechanism with the latest jaxws-api.jar and jaxb-api.jar packages with no help.
It works fine when i use the java EE 1.4 platform....
The full Error description:
oracle.jdeveloper.webservices.model.WebServiceException: Error creating model from wsdl "file:/vobs/NMS/NorthBoundIF/MTOSI/MTOSI_Documentation/DDPs/ResourceTroubleManagement/IIS/wsdl/AlarmRetrieval/AlarmRetrievalHttp.wsdl": java.lang.NoSuchMethodException: com.sun.tools.xjc.generator.annotation.spec.XmlElementRefWriter.required(boolean)
+ at oracle.jdeveloper.webservices.model.java.JavaWebService.createPortTypes(JavaWebService.java:1635)+
+ at oracle.jdeveloper.webservices.model.WebService.createServiceFromWSDL(WebService.java:2846)+
+ at oracle.jdeveloper.webservices.model.WebService.createServiceFromWSDL(WebService.java:2611)+
+ at oracle.jdeveloper.webservices.model.java.JavaWebService.setDescription(JavaWebService.java:745)+
+ at oracle.jdevimpl.webservices.wizard.jaxrpc.topdown.TDJaxWsSpecifyWsdlPanel.setDescription(TDJaxWsSpecifyWsdlPanel.java:364)+
+ at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel.buildModel(SpecifyWsdlPanel.java:1109)+
+ at oracle.jdevimpl.webservices.wizard.jaxrpc.common.SpecifyWsdlPanel$5.run(SpecifyWsdlPanel.java:661)+
+ at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)+
+ at java.lang.Thread.run(Thread.java:619)+
Caused by: oracle.jdeveloper.webservices.tools.WsdlValidationException: Error creating model from wsdl "file:/vobs/NMS/NorthBoundIF/MTOSI/MTOSI_Documentation/DDPs/ResourceTroubleManagement/IIS/wsdl/AlarmRetrieval/AlarmRetrievalHttp.wsdl": java.lang.NoSuchMethodException: com.sun.tools.xjc.generator.annotation.spec.XmlElementRefWriter.required(boolean)
+ at oracle.jdevimpl.webservices.tools.wsa.WsaAdaptor.newWsdlValidationException(WsaAdaptor.java:825)+
+ at oracle.jdevimpl.webservices.tools.wsa.WsaAdaptor.getSeiInfo(WsaAdaptor.java:515)+
+ at oracle.jdeveloper.webservices.tools.WebServiceTools.getSeiInfo(WebServiceTools.java:523)+
+ at oracle.jdeveloper.webservices.model.java.JavaWebService.getSeiInfo(JavaWebService.java:1741)+
+ at oracle.jdeveloper.webservices.model.java.JavaWebService.createPortTypes(JavaWebService.java:1496)+
+ ... 8 more+
Caused by: oracle.j2ee.ws.common.tools.api.ValidationException: Error creating model from wsdl "file:/vobs/NMS/NorthBoundIF/MTOSI/MTOSI_Documentation/DDPs/ResourceTroubleManagement/IIS/wsdl/AlarmRetrieval/AlarmRetrievalHttp.wsdl": java.lang.NoSuchMethodException: com.sun.tools.xjc.generator.annotation.spec.XmlElementRefWriter.required(boolean)
+ at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsWsdlToJavaTool.getJAXWSModel(JaxwsWsdlToJavaTool.java:664)+
+ at oracle.j2ee.ws.tools.wsa.WsdlToJavaTool.createJAXWSModel(WsdlToJavaTool.java:475)+
+ at oracle.j2ee.ws.tools.wsa.Util.getJaxWsSeiInfo(Util.java:1357)+
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)+
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)+
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
+ at java.lang.reflect.Method.invoke(Method.java:597)+
+ at oracle.jdevimpl.webservices.tools.wsa.Assembler$2$1.invoke(Assembler.java:218)+
+ at $Proxy34.getJaxWsSeiInfo(Unknown Source)+
+ at oracle.jdevimpl.webservices.tools.wsa.WsaAdaptor.getSeiInfo(WsaAdaptor.java:505)+
+ ... 11 more+
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: com.sun.tools.xjc.generator.annotation.spec.XmlElementRefWriter.required(boolean)
+ at com.sun.tools.xjc.generator.bean.field.AbstractField.getMRequired(AbstractField.java:186)+
+ at com.sun.tools.xjc.generator.bean.field.AbstractField.annotateReference(AbstractField.java:209)+
+ at com.sun.tools.xjc.generator.bean.field.AbstractField.annotate(AbstractField.java:164)+
+ at com.sun.tools.xjc.generator.bean.field.AbstractFieldWithVar.createField(AbstractFieldWithVar.java:75)+
+ at com.sun.tools.xjc.generator.bean.field.SingleField.<init>(SingleField.java:89)+
+ at com.sun.tools.xjc.generator.bean.field.SingleField.<init>(SingleField.java:76)+
+ at sun.reflect.GeneratedConstructorAccessor53.newInstance(Unknown Source)+
+ at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)+
+ at java.lang.reflect.Constructor.newInstance(Constructor.java:513)+
+ at com.sun.tools.xjc.generator.bean.field.GenericFieldRenderer.generate(GenericFieldRenderer.java:64)+
+ at com.sun.tools.xjc.generator.bean.field.DefaultFieldRenderer.generate(DefaultFieldRenderer.java:75)+
+ at com.sun.tools.xjc.generator.bean.BeanGenerator.generateFieldDecl(BeanGenerator.java:751)+
+ at com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenerator.java:539)+
+ at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:241)+
+ at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:181)+
+ at com.sun.tools.xjc.model.Model.generateCode(Model.java:286)+
+ at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:251)+
+ at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:85)+
+ at oracle.j2ee.ws.common.tools.databinding.jaxb20.JAXB20TypeGenerator.generateJavaTypes(JAXB20TypeGenerator.java:117)+
+ at oracle.j2ee.ws.tools.wsa.SchemaTool.genValueTypes(SchemaTool.java:186)+
+ at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsWsdlToJavaTool.getJAXWSModel(JaxwsWsdlToJavaTool.java:647)+
+ ... 20 more+
Caused by: java.lang.NoSuchMethodException: com.sun.tools.xjc.generator.annotation.spec.XmlElementRefWriter.required(boolean)
+ at java.lang.Class.getMethod(Class.java:1605)+
+ at com.sun.tools.xjc.generator.bean.field.AbstractField.getMRequired(AbstractField.java:184)+
+ ... 40 more+
Thanks,
Roy.Guys,
You are asking about an issue that was a pain in the nick for me few months ago. The problem is that you won't find mych help here as I figured out that Apex geeks here either did not do much webservices or ended up hating it as i do :) . This is an error that can be due many different reason, let me ask you this:
1- Does your the other system you are trying to call through webservices using HTTPS ?
2- If yes, did you create a valid oracle wallet for that https connection ?
3- Make sure you are using the correct URL ( am sure you do, just double check )
4- If using a proxy, then you have to define that in the web service reference creation page
provide more info and I hope I can help you with this,
Sam
Please reward good answers by marking them correct or helpful! -
Error while generating Web Service from a function module.
Hi Experts,
I am trying to create a web service from function module by doing the steps as mentioned in the below document:
http://www.sdn.sap.com/irj/scn/index;jsessionid=(J2EE3417800)ID1146834250DB10778842957931285337End?rid=/library/uuid/80fa3dff-ce76-2a10-3f94-f3df8f2db5a2&overridelayout=true
When i save it as an local object instead of generating the Web Service it gives me the below error:
"Error during activation of Web Service"
Kindly let me know what needs to be done inorder to resolve this issue.
I have a feeling that this error may be with respect to some authorizations, in that case how do we resolve it
Helpful Inputs Awaited.!!!
Thanks
DhwaniHi Dhawani,
Hi Pavan,
Can you please elaborate...how this will help??
Thanks
Dhwani
I dont know the specific reason but internally there may some inconsistancy but i faced the same error and i tried with saving it in the package.
Thanks -
Calling a Web Service from PL/SQL Procedure
How can you call a web service from a pl/sql package , also is it valid to call a web service from pl/sql according to Fusion Standards..
Hi,
On way we can call a web service is to pass the Web Service URL to UTL_HTTP package:
Sample Web Service URL
===================
lv_url :=
'http://67.97.189.151:8888/plsqlsample/dbfunc?invoke=placeOrder'
|| '&'
|| 'param0=1'
|| '&'
|| 'param1=1'
|| '&'
|| 'param2=1';
Sample Call using UTL_HTTP
=====================
SELECT UTL_HTTP.request (lv_url)
INTO lv_result
FROM DUAL;
Thank you.
Regards,
Balu -
Generating web service from session bean
Hi
I have a session bean in one project which has a service-endpoint defined.
My web services are in another project entirely, within the same workspace if that helps any.
When I generate the web service from the EJB JDev turns the business tier project into a web project,
I don't see any options to include the web service in the web project.
I've reversed all of the changes, but wonder if I shouldn't redo it and copy the mapping file and configuration
across to the web project and reverse the changes in the business tier.
This is a workaround that I'm hoping to avoid, as I'm doing the "howto" for this in our project.
How is this normally done?I tried generating the web servioce from WSDL, in the web project.
I tested and the web service works fine.
Then I changed the config file to point to the ejb, but the server won't start up....
*08/09/17 10:58:40 WARNING: Application.setConfig Application: current-workspace-app is in failed state as initialization failed.*
This is the webservices.xml bit I updated...
<ejb-link>SomeOrOtherEjbName</ejb-link> The bit I found in webservices.xml when the service is in the business tier.
<!-- <servlet-link>SomeOrOtherWebServiceSoapHttpPort</servlet-link> --> The service that works in the web tier. -
Parameter names change when generating web service from WSDL
Hi,
I have a problem with BEAs web services that I'm hoping someone can help me with.
I have a
WSDL file, and from that I want to generate a web service implementation and a
web service
client. In the WSDL file, I have a message defined like this:
<message name="someRequest">
<part xmlns:partns="http://www.w3.org/2001/XMLSchema" type="partns:base64Binary"
name="data"/>
</message>
I generate the server using the server using the wsdl2service Ant task, I implement
the necessary classes, and I deploy it. When I access the deployed web service,
the parameter name has changed, from "data" to "bytes". If I access the WSDL file
of the deployed web service, it says:
<message name="someRequest">
<part xmlns:partns="http://www.w3.org/2001/XMLSchema" type="partns:base64Binary"
name="bytes"/>
</message>
This happens for all parameters, string parameters are renamed to "string", base64Binary
parameters are renamed to "bytes", etc...
This poses a problem to me, because if I generate a web service client from the
original WSDL file, it will not be able to talk to my web service. Is there any
way of forcing a web service generated from a WSDL file to keep the parameter
names of the original WSDL file?
Any help in this is greatly appreciated.
Regards,
PetterFrom a quick look of your WSDL, it seams that you are mixing document-literal-bare and document-literal-wrapped flavor of web services. WSA may be able to do a better job at working around this mixed flavors than JDeveloper.
If you have hand crafted this WSDL, I would recomend that you spend some time looking at the way WSDL are generated, with the java-first mode (or bottom-up), then author the WSDL you need for the final service.
Here are sample of bare-style :
<xsd:element name="getPupilAddressResponse" type="xsd:string"/>
<xsd:element name="getPupilAddressRequest" type="xsd:int"/>
Wrapped will looks like that:
<xsd:element name="getSENLevelResponse">
<xsd:complexType>
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element name="LevelDetails" type="tns:SENLevelRecord"/>
<xsd:element name="RecordCount" type="xsd:int">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Hope this helps,
Eric -
Hi,
I have been successfull in Publishing Web Service using SQL (DML) using :
1. Oracle Express Db 10.2
2. OC4J 10.1.3
Any Help Will be appreciated........ :)
NOTE: Oracle Documentation on Application Server SUCKS (Too Many Errors prints and Wrong Information in the Web Servises area including JAR file paths)
I can only use One parameter in the QUERY and a Second Parameter gives an Error.
java -jar ${ORACLE_HOME}/webservices/lib/wsa.jar -sqlAssemble -appName query -dataSource jdbc/OracleCoreDS -sqlstatement "updtProdTyp=update PRODUCT_TYPES SET NAME = :{newname VARCHAR} where NAME = :{oldname VARCHAR}" -dbConnection jdbc:oracle:thin:@localhost:1521:XE -dbUser store/store
INFO: [WSADBPlugin] endpoint setInterface: oracle.generated.SqlStmts, setImplementation: oracle.generated.SqlStmtsUser
INFO: java oracle.jpub.Doit -user=store/store -url=jdbc:oracle:thin:@localhost:1521:XE -dir=./src/server -codegen=jdbc -style=oracle/j2ee/ws/tools/wsa/db/webservices-common -style=oracle/j2ee/ws/tools/wsa/db/webservices10 -style=oracle/j2ee/ws/tools/wsa/db/webservices10literal -outarguments=return -datasource=jdbc/OracleCoreDS -sqlstatement.updtProdTyp=update PRODUCT_TYPES SET NAME = :{newname VARCHAR} where NAME = :{oldname VARCHAR} -sqlstatement.class=SqlStmts -package=oracle.generated -plsqlfile=SqlStmts_plsql_wrapper.sql,SqlStmts_plsql_dropper.sql -plsqlpackage=SqlStmts_plsql_wrapper -connscope=method -sqlj -d=./war/WEB-INF/classes -C-g
INFO: SqlStmtsBase
/usr/lib/oracle/xe/app/OC4J/D_My_Apps/src/server/oracle/generated/SqlStmtsUser.java:8: oracle.generated.SqlStmtsUser is not abstract and does not override abstract method updtProdTypiSS(java.lang.String[],java.lang.String[]) in oracle.generated.SqlStmts
public class SqlStmtsUser extends SqlStmtsBase implements SqlStmts, java.rmi.Remote
^
/usr/lib/oracle/xe/app/OC4J/D_My_Apps/src/server/oracle/generated/SqlStmtsUser.java:22: cannot find symbol
symbol : method _getProdTypBeans(java.lang.String,java.sql.Connection)
location: class oracle.generated.SqlStmtsBase
__jRt_0 = super._getProdTypBeans(__jRt_2, __onnScopeMethod);
/usr/lib/oracle/xe/app/OC4J/D_My_Apps/src/server/oracle/generated/SqlStmtsUser.java:85: cannot find symbol
symbol : method _getProdTyp(java.lang.String,java.sql.Connection)
location: class oracle.generated.SqlStmtsBase
__jRt_0 = super._getProdTyp(__jRt_8, __onnScopeMethod);
^
/usr/lib/oracle/xe/app/OC4J/D_My_Apps/src/server/oracle/generated/SqlStmtsUser.java:128: _updtProdTyp(java.lang.String,java.lang.String,java.sql.Connection) in oracle.generated.SqlStmtsBase cannot be applied to (java.lang.String,java.sql.Connection)
__jRt_0 = super._updtProdTyp(__jRt_10, __onnScopeMethod);
^
/usr/lib/oracle/xe/app/OC4J/D_My_Apps/src/server/oracle/generated/SqlStmtsUser.java:145: cannot find symbol
symbol : method _updtProdTypiS(java.lang.String[],java.sql.Connection)
location: class oracle.generated.SqlStmtsBase
__jRt_0 = super._updtProdTypiS(__jRt_12, __onnScopeMethod);
^
6 errors
INFO: NEW DBWS runtimeProperties set databaseJndiName: jdbc/OracleCoreDS
INFO: User classpath is :/usr/lib/oracle/xe/app/OC4J/D_My_Apps/./war/WEB-INF/classes
INFO: Checking for JSR-181 Annotations capabilities in current JVM...
INFO: Found JSR-181 Annotations capabilities. Checking for JSR-181 Annotations Processor...
INFO: Found JSR-181 Annotations processor. JSR-181 Annotations (if any) will be processed
INFO: No JSR-181 annotations found in specified class oracle.generated.SqlStmtsUser
FINE: ValueTypeModeler.log [creating model: query]
FINE: ValueTypeModeler.log [creating port: oracle.generated.SqlStmts]
FINE: MethodModeler.log [creating operation: updtProdTyp]
FINE: MethodModeler.log [creating operation: updtProdTypiSS]
WARNING: Problem validating implementation class. Access modifier problem detected for the implementation class oracle.generated.SqlStmtsUser: int updtProdTyp( java.lang.String, java.lang.String ) is defined with access modifiers that make it an unsuitable implementation of the interface method: The method cannot be 'abstract'.
Thu Mar 30 14:17:34
Thanks
====================================I don't have the problem with the second arugument, using essentially the same command as yours. Could you make sure you clean up the following subdirectories and retry:
ear query.ear src war
My guess is that the leftover subdirectories in your previous run are playing game with you. You can simplify leftover management by specifying -output setting. -
Problem consuming Web Service from ECC 6.0 using dual certificates
Hi, I am trying to consume a secure web service on ECC 6.0 - so far without much luck.
When I try to connect to the ws server, it seems there are three certificates in action: a CICS certificate for establishing the SSL connection, a 'root' certificate from the PKI certificate issuer, and a private certificate issued by the above issuer (please forgive me if a have the syntax wrong - certificates are not my primary line of work). So, using Trust Manager (STRUST), I have created a PSE named 'OES' and imported all three certificates into it.
In SOAMANAGER I have set up the end-point using the WSDL-file and set the following parameters:
- Authentication Method = X.509 Client Certificate
- Trustworthiness Method = Holder of Key
- Issuer = <issuer from the root certificate>
- Name of Attester = <blank>
- Validity of SAML Assertion = 180
- Caching of SAML Assertions = False
- Attester System Destination = <blank>
- Name of Attester = <blank>
- User = SRxxxWS
- Password = <blank>
- Client PSE = OES
When I try to consume the web service, I can see in the log files that the CICS certificat is used for establishing the SSL connection but all I receive back is an HTTP 403 "Client Authentication Error". If I remove the CICS certificate from the PSE, the connection is not made.
How do I make the client certificate available for the connection? Have I approached the problem from the wrong side? Has anybody experienced something similar? Any help will be highly appreciated.
Thanks,
BoHi,
I am not Certificate expert either but you can get plenty of help from "Security" forum on SDN. I can help you bit with some related SAP notes and forum answers:
See following notes :
1324884 - Analysis of ABAP Web Service SOA Configuration
1318906 - Trace analysis of SSL problems
1319507 - Overview: Analysis of ABAP Web Service Configuration
See this forum discussed about consuming secured ws in webdynbpro:
Problem in Calling Secure Webservice.
Articles:
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/92914af6-0d01-0010-3081-ded3a41be8f2&overridelayout=true -
Web Services Security Configuration Guide (discussed IBM and NW WS security but you can find some examples and hints there)
Regards,
Gourav -
Is there any script in S1AS which generates Web services from ejbs in jar?
I'm porting a J2EE app from WebLogic to S1AS7. The ISV uses Ant/XDoclet to do some code generation and build. One of targets in the build scripts is to take as input an EJB JAR file and create all the needed web service components and package them into a deployable EAR file using WebLogic's servicegen Ant task
(http://edocs.bea.com/wls/docs81/webserv/assemble.html#1052126).
Is there anything similar in S1AS?
A quick response is greatly appreciated.
Thanks
KishoreWe had looked into doing something similar, and this post is the closest we found.
https://community.qualys.com/thread/11816
Basically you will need a middle-man between Qualys and ConfigMgr to house the data. This may be a new database, or a whole seperate platform. I expect this could easily be done with SQL and SSRS.
Also note, database edits to the ConfigMgr database are
not supported by Microsoft, I would recommend using a central system to pull data from Qualys and ConfigMgr without modifying either.
Daniel Ratliff | http://www.PotentEngineer.com -
Invocation of Netweaver generated Web Service from XI
Hi,
I have defined a webservice for a stateless session bean using the developer studio. From the wsdl I have imported the message interface as external definition. I have defined mappings on the respective message type. Now I would like to call my service using the SOAP receiver adapter.
Could anybody tell me which URL has to be quoted there. I retrieve the wsdl from the following address:
http://myhost:50000/AddressService/AddressConfig?wsdl
Since the webservice is RPC like, is it valid to invoke it using the SOAP receiver adapter?
Kind regards,
HeikoHi Naveen,
Do you have an answer for this ....
Hi Friends,
I have a question regarding publishing a WSDL created via XI (Integration Directory) to a UDDI Server of SAP WAS JAVA 640. Can I publish the WSDL generated from XI in the UDDI Server provided as a part of SAP WAS 640 ? I know that the WSDL will be specific for a client( sender) but I feel that its better than emailing the WSDL to the client after generating it in the integration directory. Any relevant documents, links explaining how to do that will be appreciated.
The above question was asked by Siva Maranani before. His question was as below .
"I know that whenever a webservice is developed using NDS it can be deployed in WebAs and the same can be registered in UDDI ( webAs acting as UDDI registry).
Now my requirement is to register a WSDL file (which describes) for an external webservice. Can WebAs be used as a UDDI registry..?
I like to know if this is possible or not..? if yes.. how..?"
Waiting for the reply...
Thanks & Regards,
Mathew -
Problems generating multiple services from the same EAR using servicegen
I have a single EJB JAR that contains multiple stateless session beans. I
want to expose each of these individually as a service. So I have defined
the following in my build file:
<servicegen destEar="${ear.file}" warName="${war.file.name}"
contextURI="web_services">
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="AService"
serviceURI="/AService" includeEJBs="AService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="BService"
serviceURI="/BService" includeEJBs="BService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="CService"
serviceURI="/CService" includeEJBs="CService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="DService"
serviceURI="/DService" includeEJBs="DService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="EService"
serviceURI="/EService" includeEJBs="EService" generateTypes="True"
expandMethods="True"/>
</servicegen>
I execute the task and it runs without issue. However, when I attempt to
deploy the EAR I get some odd results (there are multiple jars listed all
with my original name and then a number appended, for example MyApp.ear2).
The deployment fails because each of these JARs contains the same session
beans.
So, I'm wondering if my only option is to package each session bean in a
separate EJB JAR or if there is another way I could get this to work.
Thanks,
RobThanks, Neal. I'll do as you suggest.
Just a little feature enhancement request, as well. It would be nice if the
option existed to break out the webservices for all the session beans in a
ejb rather than creating one all-encompassing interface of all the methods.
I think this would be a useful feature.
Thanks, again,
Rob
"Neal Yin" <[email protected]> wrote in message
news:[email protected]...
I am not sure what can cause this. But I will make servicegen check for
duplicate.
For now, in order to make sure your automatic build process, you can use
ant's build in task "jar" to update your application.xml with a correctone
after servicegen.
-Neal
"Rob Moore" <[email protected]> wrote in message
news:[email protected]...
Neal,
After discussing this issue with a coworker, I found that when he buildsthe
ear on his machine using the servicegen entries I specified previously,the
application.xml is generated correctly. Mine, as you guessed, puts in
multiple module entries all containing references to the same jar. I'm
puzzled because we are apparently running in the same environment. Anyidea
what might be causing it?
Thanks,
Rob
"Neal Yin" <[email protected]> wrote in message
news:[email protected]...
Hi Rob,
There is something wrong during generating application.xml for the
ear.
After servicegen, if you open generated application.xml, you probablycan
see duplicate entries for one module. Please go ahead delete thoseredundant
entries. Let me know if this works.
-Neal
"Rob Moore" <[email protected]> wrote in message
news:[email protected]...
I have a single EJB JAR that contains multiple stateless session
beans.
I
want to expose each of these individually as a service. So I havedefined
the following in my build file:
<servicegen destEar="${ear.file}" warName="${war.file.name}"
contextURI="web_services">
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="AService"
serviceURI="/AService" includeEJBs="AService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="BService"
serviceURI="/BService" includeEJBs="BService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="CService"
serviceURI="/CService" includeEJBs="CService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="DService"
serviceURI="/DService" includeEJBs="DService" generateTypes="True"
expandMethods="True"/>
<service ejbJar="${ejbc.jar.file}"
targetNamespace="http://www.acme.com/xauto" serviceName="EService"
serviceURI="/EService" includeEJBs="EService" generateTypes="True"
expandMethods="True"/>
</servicegen>
I execute the task and it runs without issue. However, when I
attempt
to
deploy the EAR I get some odd results (there are multiple jars
listed
all
with my original name and then a number appended, for exampleMyApp.ear2).
The deployment fails because each of these JARs contains the samesession
beans.
So, I'm wondering if my only option is to package each session bean
in
a
separate EJB JAR or if there is another way I could get this to
work.
>>>>
Thanks,
Rob -
Calling a Web Service from Oracle Stored procedure
I am getting the following error when running this example. Does anyone know what did I miss.
Error: HTTPClient.HTTPConnection java.lang.NoClassDefFoundError: HTTPClient.HTTPConnection at oracle.soap.transport.http.OracleSOAPHTTPConnection.getHTTPConnection(Ljava.net.URL;)LHTTPClient.HTTPConnection;(OracleSOAPHTTPConnection.java:1122) at oracle.soap.transport.http.OracleSOAPHTTPConnection.post(Ljava.net.URL;Lorg.apache.soap.transport.TransportMessage;)Lorg.apache.soap.transport.TransportMessage;(OracleSOAPHTTPConnection.java:877) at oracle.soap.transport.http.OracleSOAPHTTPConnection.send(Ljava.net.URL;Ljava.lang.String;Ljava.util.Hashtable;Lorg.apache.soap.Envelope;Lorg.apache.soap.encoding.SOAPMappingRegistry;Lorg.apache.soap.rpc.SOAPContext;)V(OracleSOAPHTTPConnection.java:713) at org.apache.soap.rpc.Call.invoke(Ljava.net.URL;Ljava.lang.String;)Lorg.apache.soap.rpc.Response;(Call.java:253) at oracle.otnsamples.wsclient.CreditAgencyServiceStub.authorizeCustomer(Ljava.lang.String;)Ljava.lang.String;(Unknown Source) at jsp_servlet.__products._jspService(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(__products.java:191) at weblogic.servlet.jsp.JspBase.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(ServletStubImpl.java:971) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:402) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:305) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava.lang.Object;(WebAppServletContext.java:6350) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.security.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(AuthenticatedSubject.java:317) at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:118) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogic.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponseImpl;)V(WebAppServletContext.java:3635) at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel.ExecuteThread;)V(ServletRequestImpl.java:2585) at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest;)V(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:170) at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Source)
Thanks
SanjeevSanjeev,
I don't have an answer for you, just a couple of suggestions.
1. Have you tried the Sample Code?
2. Use the [ code ] and [ /code ] tags (without the spaces, of-course) to format your stack trace ...
like this!Good Luck,
Avi.
Maybe you are looking for
-
Mail won't receive since i've updated to iLife 06
i guess my subject says it all. i update iLife on one of my macs last week and since then i have not been able to receive any mail on that computer. my iBook, which i did not update the software on, has been popping mail just fine. so frustrating! ma
-
Updated Apple TV software today and am having problems with HDCP. Now I'm constantly getting this message "This content requires HDCP for playback. HDCP isn't supported by your HDMI connection." I've followed all the advice here http://support.apple.
-
Adobe Exchange for After Effects?
The old Adobe exchange is gone. I tried to download the exchange extention, and it seems to work fine for photoshop and illustrator. It seems, howerver that there is no exchange for After Effects. What heppend to all those nice scripts and pixel bend
-
FaceTime on a mac while using iTunes
Im using FaceTime on a mac and all the sound and the mic work perfectly but when i play music either on iTunes or through youtube my sound gets muted and the person I'm facetimeing with can't hear me.
-
EOS utility file name preference problem
I have a EOS 7d and a Rebel XSI for several years. I have had EOS Utility set up to put the DR_ prefix on files from the rebel and 7D_ prefix on that camera. This was done in the preferences Fine Name tab. Worked like a charm for several years. Now