Java web service to invoke a stored procedure in the database
Hi
Does anybody have a example Java web srevice to invoke a stored procedure in the database
regards
Edited by: hrishy on May 20, 2011 12:11 AM
hrishy wrote:
Thanks i have modified the title so its easy to comprehendWrite the two parts mentioned above and post if you get problems with your code.
First write code that calls the stored procedure and test that to make sure that it works.
Then write a simple webservice and test it out to make sure it works. The integration should be trivial after that.
Similar Messages
-
Physical service to invoke Oracle stored procedure taking an object type
Hello,
I have some stored procedures in Oracle that take a complex object type as parameters. Can I invoke these directly from ODSI? If so, how do I create the physical service for this?
Example:
CREATE OR REPLACE TYPE "CCSUSERDV"."TEST_TYPE" as object (
name varchar2(80),
text varchar2(1000),
some_other number
CREATE OR REPLACE PACKAGE CCSUSERDV.TEST
as
function joinText(inVal in TEST_TYPE) return varchar2;
end;
CREATE OR REPLACE PACKAGE BODY CCSUSERDV.TEST
AS
FUNCTION joinText(inVal in TEST_TYPE) return varchar2 AS
BEGIN
if (inVal.text is not null) then
return inVal.name || '-' || inVal.text;
else
return inVal.name || ':' || inVal.some_other;
end if;
END;
END;
I Want to be able to call TEST.joinText from OSDI. I know I could create a separate function that takes all the attributes of my object, but it would be considerably more convenient to implement in terms of the object instead, because there are several functions that take the same set of about 20 fields as a request.
Thank you!!
Jeff(1) Your best bet is to create a wrapper stored procedure that takes simple arguments and constructs the object, then calls your stored procedure with the object. You call the wrapper stored procedure from ODSI. JPublisher can create wrapper stored procedures for you.
(2) If it is impossible for you to create a wrapper stored procedure in the database, you can create a physical data service from the existing stored procedure. You will notice that the function in the physical data service will have simple arguments (not the object), and if you try to execute it, it will fail. It's up to you to write an anonymous pl/sql block that wraps the existing stored procedure (basically what you would have had to write for (1)), and edit the metadata in the physical ds - where it has the name of the stored procedure, replace the name with your anonymous PL/SQL block.
Below is what the CREATE_BATCH stored procedure from Oracle Process Manufacturing would look like. (it also has CURSOR args - so it is uglier than just Objects). It also demonstrates that you need to do a conversion of boolean args.
xquery version "1.0" encoding "WINDOWS-1252";
(::pragma xds <x:xds xmlns:x="urn:annotations.ld.bea.com" targetType="t:CERTIFY_BATCH" xmlns:t="ld:JdbcTest4DataServices/opm/CERTIFY_BATCH">
<creationDate>2007-01-14T20:55:37</creationDate>
<relationalDB dbVersion="10" dbType="oracle" name="oracleXeDataSource"/>
</x:xds>::)
declare namespace f1 = "ld:JdbcTest4DataServices/opm/CERTIFY_BATCH";
import schema namespace t1 = "ld:JdbcTest4DataServices/opm/CERTIFY_BATCH" at "ld:JdbcTest4DataServices/opm/schemas/CERTIFY_BATCH.xsd";
(::pragma function <f:function xmlns:f="urn:annotations.ld.bea.com" kind="read" nativeName="DECLARE p_batch_header gme_batch_header%rowtype; x_batch_header gme_batch_header%rowtype; x_unallocated_material gme_api_pub.unallocated_materials_tab; TYPE rc IS REF CURSOR; PROCEDURE to_ref_cursor(x IN gme_api_pub.unallocated_materials_tab, ref_cursor IN OUT rc) IS l_data bea_unallocated_materials_tab := bea_unallocated_materials_tab(); BEGIN FOR i IN x.FIRST .. x.LAST LOOP l_data.EXTEND; l_data(i) := bea_unallocated_materials_type(x(i).batch_id, x(i).batch_no, x(i).material_detail_id, x(i).line_type, x(i).line_no, x(i).item_id, x(i).item_no, x(i).alloc_qty, x(i).unalloc_qty, x(i).alloc_uom); END LOOP; OPEN ref_cursor FOR SELECT * FROM TABLE ( CAST (l_data AS bea_unallocated_materials_tab) ); END; FUNCTION to_boolean(n IN NUMBER) RETURN BOOLEAN IS BEGIN IF (n = 0) THEN RETURN FALSE; ELSE RETURN TRUE; END IF; END to_boolean;BEGIN p_batch_header.batch_id := ?; p_batch_header.batch_no := ?; p_batch_header.plant_code := ?; p_batch_header.batch_type := ?; p_batch_header.actual_start_date := ?; p_batch_header.actual_cmplt_date := ?; gme_api_pub.certify_batch( p_api_version => ?, p_validation_level => ?, p_init_msg_list => to_boolean(?), p_commit => to_boolean(?), x_message_count => ?, x_message_list => ?, x_return_status => ?, p_del_incomplete_manual => to_boolean(?), p_ignore_shortages => to_boolean(?), p_batch_header => p_batch_header, x_batch_header => x_batch_header, x_unallocated_material => x_unallocated_material ); ? := x_batch_header.batch_id; ? := x_batch_header.batch_no; ? := x_batch_header.plant_code; ? := x_batch_header.batch_type; ? := x_batch_header.actual_start_date; ? := x_batch_header.actual_cmplt_date; ? := x_batch_header.plan_start_date; ? := x_batch_header.plan_cmplt_date; ? := x_batch_header.due_date; ? := x_batch_header.recipe_validity_rule_id; ? := x_batch_header.wip_whse_code; to_ref_cursor(x_unallocated_material, ?);END;" nativeLevel2Container="" nativeLevel3Container="" style="storedProcedure">
<params xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdt="http://www.w3.org/2004/07/xpath-datatypes" xmlns:pn1="ld:JdbcTest4DataServices/opm/CERTIFY_BATCH" >
<param name="BATCH_ID" kind="in" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="BATCH_NO" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="PLANT_CODE" kind="in" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="BATCH_TYPE" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="ACTUAL_START_DATE" kind="in" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
<param name="ACTUAL_CMPLT_DATE" kind="in" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
<param name="P_API_VERSION" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="P_VALIDATION_LEVEL" kind="in" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="P_INIT_MSG_LIST" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="P_COMMIT" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="X_MESSAGE_COUNT" kind="out" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="X_MESSAGE_LIST" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="X_RETURN_STATUS" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="P_DEL_INCOMPLETE_MANUAL" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="P_IGNORE_SHORTAGES" kind="in" xqueryType="xs:integer" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="BATCH_ID" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="BATCH_NO" kind="out" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="PLANT_CODE" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="BATCH_TYPE" kind="out" xqueryType="xs:decimal" nativeTypeCode="3" nativeType="NUMBER"/>
<param name="ACTUAL_START_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
<param name="ACTUAL_CMPLT_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
<param name="PLAN_START_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
<param name="PLAN_CMPLT_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
<param name="DUE_DATE" kind="out" xqueryType="xs:dateTime" nativeTypeCode="93" nativeType="DATE"/>
<param name="RECIPE_VALIDITY_RULE_ID" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="WIP_WHSE_CODE" kind="out" xqueryType="xs:string" nativeTypeCode="12" nativeType="VARCHAR2"/>
<param name="X_UNALLOCATED_MATERIAL" kind="out" xqueryType="pn1:X_UNALLOCATED_MATERIAL_ROW" nativeTypeCode="-10" nativeType="REF CURSOR"/>
</params>
</f:function>::)
declare function f1:CERTIFY_BATCH($p_batch_header_batch_id as xsd:string, $p_batch_header_batch_no as xsd:decimal, $p_batch_header_plant_code as xsd:string, $p_batch_header_batch_type as xsd:decimal, $p_batch_header_actual_start_date as xsd:dateTime, $p_batch_header_actual_cmplt_date as xsd:dateTime, $p_api_version as xsd:decimal, $p_validation_level as xsd:decimal, $p_init_msg_list as xsd:integer, $p_commit as xsd:integer, $p_del_incomplete_manual as xsd:integer, $p_ignore_shortages as xsd:integer) as schema-element(t1:CERTIFY_BATCH) external; -
How to make a web service out of a Stored procedure/Package
Hi
I have developed a PL/SQL Package and i wanted to expose this package as a WebService. Can you please give me the detailed steps to create a webservice.
Your help in this regard is highly appreciated.
Thanks
LajLaj,
I've not done it myself but I believe that there are wizards in JDeveloper that do most (if not all) of the work for you.
You could try searching the JDeveloper forum.
Patrick. -
How to extract the details of the stored procedures in the database?
Dear all,
How to extract the details of them?
Bst Rgds,
EdwardHi Wa-Man Edward Chan,
Following is the PLSQL Block Which Will Give Package, Procedure, Function Source
set verify off
undefine which_object;
undefine which_line;
declare
Shows lines with context of:
VIEW
FUNCTION
PROCEDURE
TRIGGER
PACKAGE SPECIFICATION
PACKAGE BODY
The script uses to temporary tables ERROR_TABLE_TEMP and ERROR_CLOB_TEMP created with:
CREATE GLOBAL TEMPORARY TABLE ERROR_TABLE_TEMP(line number, text varchar2(4000));
CREATE GLOBAL TEMPORARY TABLE ERROR_CLOB_TEMP(TEXT CLOB);
v_offset number:= 5; -- Controls how many lines before and after the line in focus are to be shown
v_obj_name varchar2(100);
v_obj_type varchar2(100);
v_obj_type_new varchar2(100);
v_obj_line number;
v_counter number := 0;
v_text varchar2(32767);
v_subtext varchar2(1000);
v_from number;
v_len number;
v_marker varchar2(10);
v_found number;
v_line_from number;
v_line_to number;
v_long_text clob;
procedure ins_line (p_text in varchar2) is
begin
v_counter := v_counter + 1;
insert into error_table_temp(line,text)
values (v_counter,p_text);
end;
begin
delete error_table_temp;
select ltrim(rtrim(upper('&which_object'))), nvl(to_number('&which_line'),0)
into v_obj_name, v_obj_line
from dual;
begin
select decode(object_type,'PACKAGE','PACKAGE BODY',object_type)
into v_obj_type
from user_objects
where object_name = v_obj_name
and nvl(v_obj_line,0) > 0
and rownum = 1;
exception when no_data_found then
ins_line('ERROR: Object/line not found');
return;
end;
ins_line(v_obj_name||' ('||v_obj_type||')');
if v_obj_type in ('PACKAGE BODY','PACKAGE','FUNCTION','PROCEDURE') then
v_obj_type_new := v_obj_type;
ins_line('----------------------- PROGRAM LISTING -------------------------');
for code in (select trim(text) text, lpad(line,4,' ')||' '||decode(line,v_obj_line,'>>>>> ',' ') marker, type
from user_source
where name = v_obj_name
and line between v_obj_line-v_offset and v_obj_line+v_offset
order by decode(type,v_obj_type,1,2),line) loop
if v_obj_type_new != code.type then
ins_line(null);
v_obj_type_new := code.type;
v_counter := -100000; -- In order to show specification before body
ins_line(v_obj_name||' ('||v_obj_type_new||')');
ins_line('----------------------- PROGRAM LISTING -------------------------');
end if;
ins_line(code.marker||code.text);
end loop;
elsif v_obj_type = 'VIEW' then
select text
into v_text
from user_views
where view_name = v_obj_name;
v_line_from := v_obj_line-v_offset;
v_line_to := v_obj_line+v_offset;
v_obj_line := v_obj_line -1;
ins_line('------------------------------- PROGRAM LISTING -------------------------------');
for i in v_line_from..v_line_to loop
begin
if i = v_obj_line then
v_marker := '>>>>> ';
else
v_marker := ' ';
end if;
if i = 0 then
v_from := 0;
v_len := instr(v_text,chr(10));
else
v_from := instr(v_text,chr(10),1,i);
v_len := instr(v_text,chr(10),1,i+1) - v_from;
end if;
v_subtext := substr(v_text,v_from+1,v_len-1);
if v_len > 0 then
ins_line(lpad(to_char(i+1),4,' ')||' '||v_marker||v_subtext);
end if;
exception when others then
null;
end;
end loop;
elsif v_obj_type = 'TRIGGER' then
ins_line('----------------------- PROGRAM LISTING -------------------------');
delete error_clob_temp;
execute immediate 'insert into error_clob_temp (text) '||
'select to_lob(trigger_body) '||
'from user_triggers ' ||
'where trigger_name = '''||v_obj_name||'''';
select text
into v_long_text
from error_clob_temp;
v_obj_line := v_obj_line-1;
v_line_from := v_obj_line-v_offset;
v_line_to := v_obj_line+v_offset;
for i in v_line_from..v_line_to loop
begin
if i = v_obj_line then
v_marker := '>>>>> ';
else
v_marker := ' ';
end if;
if i = 0 then
v_from := 0;
v_len := dbms_lob.instr(v_long_text,chr(10));
else
v_from := dbms_lob.instr(v_long_text,chr(10),1,i);
v_len := dbms_lob.instr(v_long_text,chr(10),1,i+1) - v_from;
end if;
v_subtext := dbms_lob.substr(v_long_text,v_len-1,v_from+1);
if v_len > 0 then
ins_line(lpad(to_char(i+1),4,' ')||' '||v_marker||v_subtext);
end if;
exception when others then
null;
end;
end loop;
end if;
if v_counter = 0 then
ins_line('*********** NO CODE FOUND ***********');
else
ins_line(null);
end if;
exception when others then
ins_line('*********** ERROR: NOT POSSIBLE TO SHOW THE CODE ***********');
ins_line(' FEJL: '||sqlerrm);
end;
set linesize 4000
set heading off
set feedback off
set verify on
select text
from error_table_temp
order by line;
set linesize 80
set heading on
set feedback on
Prashant -
How to invoke a stored procedure on MS Sql Server with Java?
I started writing Enterprise Java Beans and created an ODBC dsn with MS Sql Server 2000 which I can access using jdbc:odbc:mySqlDSN. This all works fine using Java Sql Statements. What kind of Java/Java Sql statement can I use to invoke a stored procedure on the Sql Server? Is it possible to use ADO/ADO command objects with Java? Is it possible to import/implement Mdac2.6 ActiveX data objects libary in Java?
ThanksThanks all for your replies. I will search the api for callable statements. I am curious though, the reply that suggests using a prepared statement - can I put the name of a stored procedure in a prepared statment or is this just suggestions an action query like Insert Into, Update, Delete? Like with ADO you can say
cmdObject.CommandType = adStoredProcedure
cmdObject.CommandText = "NameOfStoredProc"
cmdObject.ExecuteNonQuery()
Once I am calling/importing/implementing the proper libraries/interfaces in Java, can a prepared statement reference a stored procedure as above?
Thanks -
Using a Java Web Service in a BPEL Process
Hello.
I am newie with Oracle Soa Suite and BPEL process and i have problems. I have developed a Java Web Service, first developing the Java Class and then using the wizard to create a Java Web Service.
Now i want to develope a BPEL Process that use this Java Web Service. I have tried it with the component Partnert Link from de palette and looking for the java web service wsdl file. I have tried it with the component Java Web Service from the palette. In both of them, it happens the same, it appears erros looking for the wsdl or looking for something that the wsdl use. If someone could try it. Its easy. Create a Java class with one simple method. Create A java web service with the wizard. Then create a BPEL process and try to use it with a partner link.
I have been trying it one week...
Thank you in advance.Hi
You can use a java web service to publish a Web service from a Java class.
A wizard creates the WSDL document and deployment files needed to publish your code as a Web service. After you select the class and methods you want to publish, the wizard generates deployment descriptors, a JAX-RPC mapping file, and a WSDL document that can be deployed to an application server.
You can refer : \bpel\samples\tutorials\102.InvokingProcesses\ws sample to invoke a WS using JAX-RPC Call.
Hope that helps!
Cheers
A -
Java Web Services accessing rmi server
Hi,
I want to access the rmi server from a java web services.My java web services is running under Sun application server9.The rmi server is not using any application server.Please help me to sort out the problem.
Bye
BinayWhat's the problem exactly? I assume you understand that the RMI server has to run like any RMI server, it has to bind itself into a Registry; the Web server acts as an RMI client so it has to look up the Registry to get a remote reference so it can call the required remote methods.
-
"The Java Web Services" - ant install
Hi, I recently downloaded "The Java Web Services" and "The Java Web Services Tutorial".
And I've reached the Creating the Build Properties File portion of the tutorial:
http://java.sun.com/webservices/docs/1.0/tutorial/doc/GettingStarted2.html#73059
I'm using Windows ME and I have no idea where to put the build.properties file.
Can anyone give me any suggestions? I am successfully able to
ant compile
but I can't get
ant install
to work once I have done the ant compile and I suspect this is because of me not having the build.properties file set... although it could be unrelated to that.
when I try to use:
ant install
I get the following error at the command prompt:
C:\tim\programs\jwsdp-1_0\docs\tutorial\examples\gs\build.xml:46: java.io.IOExce
ption: Server returned HTTP response code: 401 for URL: http://localhost:8080/ma
nager/install?path=%2Fgs&war=file%3AC%3A%5Ctim%5Cprograms%5Cjwsdp-1_0%2Fdocs%2Ft
utorial%2Fexamples%2Fgs%2Fbuild
Now tomcat is running on the correct port (8080) and the directory being referenced in the above URL exists. Am I supposed to map tomcat to a particular file system or something?
Thanks,
Tim
PS I have another post in this forum (it contains only my first question concerning the build.properties file), so if you would like the Duke dollars for both posts, feel free to post in both threads and if your answer helps me out, I'll give you the Dollars from both threads.Hi Tim
I have the same problem with the build.properties file. i am not able to solve the problem. did u find any solution for that problem u had. so plz let me knpow about that. i would appreciate if u could mail mne at [email protected]
thanks in ADV. -
Serialization error while invoking a Java web service
Hi,
I've a requirement where I need to create a Java web service, which returns a collection (a set of records).
The way I've created a web service is by having a Java Class, which internally calls a Pl/sql package returning Ref cursors and a bean Class, which wraps the method of the Java Class, to return the collection. I could create the web service successfully and could invoke the end point. The end point looks like this: http://localhost:8988/MyJavaWebService-New_JWS-context-root/MyWebService_finalSoapHttpPort
The method exposed for the web service in my Java class is of type ArrayList, to fetch the collection element.
After giving the input at the end point, while I say invoke, for the web service, I get the following error:
<env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="http://mypkg/types/"
xmlns:ns1="http://www.oracle.com/webservices/internal/literal">
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Internal Server Error (serialization error: no serializer is registered for (class mypkg.EmpBean, null))</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
I've tried making my exposed method of type Vector as well and re-generated the web service. But still I face the same issue at invocation.
Can anybody help me out and hint me on how I should proceed? I'm not sure if my approach is correct and so please correct me if I'm wrong.
Thanks in Advance,
GayathriHi,
do you use 10.1.2 or 10.1.3?
Take a look at:
Re: How to create a web service with ArrayList or Collection -
How to invoke Oracle stored procedures in Web Intelligence Custom SQL ?
Hi,
Referring to some older posts, I see that there is a work around to invoke a stored procedure to return results for a Web Intelligence report. Its been posted for calling a MS SQL stored proc, whereas the mentioned method does not seem to work for an Oracle Stored Procedure.
Steps I followed:
a) This is the parameter I have added in the oracle.sbo file => <Parameter Name="Force SQLExecute">Procedures</Parameter>
b) My stored procedure code is as follows:
CREATE OR REPLACE PROCEDURE get_emp_details(var_first_name OUT VARCHAR) AS
BEGIN
SELECT first_name INTO var_first_name
FROM EMP_DETAILS_VIEW
WHERE EMPLOYEE_ID = 100;
END;
c) Custom SQL code I added in my Webi report:
set nocount on;
/* SELECT
EMP_DETAILS_VIEW.FIRST_NAME
FROM
EMP_DETAILS_VIEW
exec get_emp_details;
On trying to validate the SQL it gives me the following error message: "The SQL query has 0 instead of 1 columns.(WIS 10810)"
Has anyone been able to successfully call an Oracle Stored procedure using the above method ?
Version of BO: XI R3 SP2
Oracle version: 11gR2
PS: I am aware that web intelligence since XI R3.1 does allow use of a dedicated Stored Procedure Universe. I would want to know if it could
be made to run in a normal Universe(not a stored procedure Universe)
Thanks for your time and inputs.
Regards,
JezEXECUTE is a SQL Plus command. You can directly call SP in PL/SQL
DECLARE
modif number;
BEGIN
select data_length into modif from user_tab_columns where table_name='CONTROL' and column_name='POSITION';
IF modif < 10 THEN
droptable('CONTROL');
execute immediate('CRETAE TABLE CONTROL ....';
... -
Publishing a stateless java web service
Hi All,
Two questions:
1 - Does Oracle still support publishing java web services (stateless and stateful) just by declaring it in the web.xml file? I see that there are instructions on how to do this in an old whitepaper but any recent programmer documentation does not have it.
2 - I tried declaring a java class as a web service in the web.xml and it seems to do something (ie., when I go to the URI, there is actually the wsdl, and the various methods that can be invoked). However, when invoking one of the methods (which should just return "Hello World" without any processing at all), I get the following exception. Any ideas?
javax.servlet.ServletException
at oracle.j2ee.ws.RpcWebService.doGetRequest(RpcWebService.java:632)
at oracle.j2ee.ws.BaseWebService.doGet(BaseWebService.java:1117)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:292)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:606)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:312)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:779)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:264)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:107)
at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:536)
Thanks,
Johnnyhello Jonathan
In Jdev903 doc it is given that (pl/sql web service)
Limitations
On Oracle9i Database release 2, when a stored procedure or function of the same name and the same package name is accessible in more than one schema, then the SQLJ translator invoked during publication of PL/SQL web services will fail. In order to resolve this problem, ensure that packages to be published are visible only in one schema, and that no other packages in other schemas share the same name.
The problem u explained come into the same category.Which database version u r using ? .
regards
Mangesh -
Java Web Service Deployed on App server does not run
hi,
I created a java web service and deployed it on my Application server. When i open the enterprise manager i find my webservice there. I click on test web service and it gives me two options one with a 4443 port and other with a 7777 port. It picks up a 0.0.0.0 hostname though i deplyoed it on to a different machine.
I choose to use the 7777 port and test the web service whrn i click invoke it give me the error
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
and when using the 4443 port it gives me the error as
"SSL Error: unable to find valid certification path to requested target"
please suggest how i can test a simple java webservice.
Thanks
SravantiI think the problem is to add the custom dll files while deploying the application. Could any one please suggest how i can add custom dll file for deployment?
Thanks
Sravanti -
Invoking ORACLE Stored Procedure
Hello guys,
I have an ORACLE stored procedure which I need to invoke. I'm currently unable to invoke the stored procedure since I'm always getting the same error:
com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'test.set_pickup' (structure 'STATEMENTNAME'): java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'SET_PICKUP' ORA-06550: line 1, column 7: PL/SQL: Statement
I've faced several projects where we needed to invoke stored procedures but these were located in a DB2 or Microsoft SQL Server, and these problems never occured.
The procedure is set to the minimum, and is now only with one input parameter. I had an input and output parameter but for narrowing the problem I've removed the output.
The structure for the stored procedure is the one that is referred by SAP or mentioned thousand of times in this forum:
Statement_name
StoredProcedureName (attribute ACTION)
TABLE
P_TRANSACTION_ID (Attributes isInput, isOutput, type)
For the basics I'm only filling with one statement.
I've read some threads with a similar problem but with no response, or solved but with no suggestion on how they solved it.
Could you please help out?
Kind regards,
Gonçalo Mouro VazHi,
Is the structure in Oracle side is of the following format?
<StatementName>
<storedProcedureName action=u201D EXECUTEu201D>
<table>realStoredProcedureeName</table>
<param1 [isInput=u201Dtrueu201D] [isOutput=true] type=SQLDatatype>val1</param1>
</storedProcedureName >
</StatementName>
Can you paste the structure here?
Regards
Suraj -
The Best Java Web Services Technology for Developing Web Services
Hi,
I am new to Web services world.
I read the java web services page . there are more than 6 technologies.
JAX-WS,
JAX-RPC,
JAXB,
SAAJ,
JAXP,
WSIT,
XWS-Security
I went through several documents on web services.
I could not get a clear idea of which technolgy to use.
Which Java web service technology will be the best to develop web services independant of language, platform.
or is there any 3rd party implemetations available ? for rapid development of web services.
Could anyone help me !.
Thanks in advance.
Message was edited by:
Siva.PrakashWhich Java web service technology will be the best
to develop web services independant of language,
platform.
Java by nature is a cross-platform language, so if your focus is on the need for portability, the choisce of WS should not be a problem. However, each WS is best suited for paricular uses.
SAAJ, a low-level level API, offers much simplicity, but is not the first choice for programmers, as SOAP (Simple Object Access Protocol)messages need to be constructed piece by piece, making it a quite arduous code to program.
If you are not familiar with XML, your best bet would be to use JAX-RPC (Java API for XML-Remote Procedure Calls), as it hides the underlying detail from the programmer, in terms of SOAP and XML. The shortcoming with RPC-based WS is that it is "restricted to the local programming experience". Another failing is that assumes there is a network path- a reliability concern.
If your program will be contacting other services during downtimes, unlike JAX-RPC, JAXM is quite useful. However, your listing did not mention it, so I wont cover it.
JAXR is a client-side only API that acts as an interface between registries (not referring to JAXP)
I am not famiiar with JAXB, JAXP, WSIT or XWS-Security..
or is there any 3rd party implemetations available ?It depends on what platform you are used to. Assuming you are familiarized with the J2EE platform (now changed to Java EE SDK), the NetBeans IDE (either 5.5, 5.5.1 or the latest editiion) is quite useful. I am using 5.5.1, but have found that it is quite buggy, especially when adding WS operations, a core requirement of a WS. if you will be using to devlop a service for an immediate need, you may find the learning curve to be a bit high, in terms of getting to grips with how to use it. (Download link:
http://www.netbeans.info/downloads/index.php)
The IBM Autonomic IDE (or AIDE), based on the WSDM standard, includes 3 sub-tools, icluding the IBM Manageability Endpoint Builder which, according to their website, allows individuals to build endpoints to allow manageability interface exposure; Manageable Resource Browser and the IBM Manageability Endpoint Simulator. However, I'm not familiar with this IDE. (Download link: http://www.alphaworks.ibm.com/tech/aide/download)
The .NET Framework uses the Visual Studio IDE. For an unbiased comparison of J2EE and the .NET Framework in terms of WS, see http://www.webservicesarchitect.com/content/articles/hanson01.asp.
Apache Axis2, Geronimo and JiBX allows fast development of WS, or so the creators profess.
The PHP environment- you could try NuSPHERE PHPed. According to one website, with it you can develop a web service in under an hour.
I hope this was useful to you.
[Based partly on Topley, K. (2003) [i]Java TM Web Services in a Nutshell: A desktop Quick Reference. 1st ed. California: O�Reilly & Associates, Inc] -
Call thirty party java web service but always return null
hi
I call a java web service in my application visual studio 2008 c#, but always return NULL.
I used Tool Fiddler to monitor the traffic between my client and the web service server, it showed the return is not Null.
Here is my code, please see if anything I do wrong.
namespace CanOfficer_THQ_vs_IHQ.TestWebReferenceAppointment {
using System.Diagnostics;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Xml.Serialization;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="AppointmentServiceSoapBinding", Namespace="http://service.ips.salvationarmy.org/")]
public partial class AppointmentService : Microsoft.Web.Services3.WebServicesClientProtocol {
private System.Threading.SendOrPostCallback deleteAppOperationCompleted;
private System.Threading.SendOrPostCallback importAppOperationCompleted;
private System.Threading.SendOrPostCallback editAppOperationCompleted;
private bool useDefaultCredentialsSetExplicitly;
/// <remarks/>
public AppointmentService() {
this.Url = global::CanOfficer_THQ_vs_IHQ.Properties.Settings.Default.CanOfficer_THQ_vs_IHQ_TestWebReferenceAppointment_AppointmentService;
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
this.UseDefaultCredentials = true;
this.useDefaultCredentialsSetExplicitly = false;
else {
this.useDefaultCredentialsSetExplicitly = true;
public new string Url {
get {
return base.Url;
set {
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
&& (this.useDefaultCredentialsSetExplicitly == false))
&& (this.IsLocalFileSystemWebService(value) == false))) {
base.UseDefaultCredentials = false;
base.Url = value;
public new bool UseDefaultCredentials {
get {
return base.UseDefaultCredentials;
set {
base.UseDefaultCredentials = value;
this.useDefaultCredentialsSetExplicitly = true;
/// <remarks/>
public event deleteAppCompletedEventHandler deleteAppCompleted;
/// <remarks/>
public event importAppCompletedEventHandler importAppCompleted;
/// <remarks/>
public event editAppCompletedEventHandler editAppCompleted;
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
RequestNamespace="http://service.ips.salvationarmy.org/",
ResponseNamespace="http://service.ips.salvationarmy.org/",
Use=System.Web.Services.Description.SoapBindingUse.Encoded,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string deleteApp([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int id) {
object[] results = this.Invoke("deleteApp", new object[] {
id});
return ((string)(results[0]));
/// <remarks/>
public void deleteAppAsync(int id) {
this.deleteAppAsync(id, null);
/// <remarks/>
public void deleteAppAsync(int id, object userState) {
if ((this.deleteAppOperationCompleted == null)) {
this.deleteAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OndeleteAppOperationCompleted);
this.InvokeAsync("deleteApp", new object[] {
id}, this.deleteAppOperationCompleted, userState);
private void OndeleteAppOperationCompleted(object arg) {
if ((this.deleteAppCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.deleteAppCompleted(this, new deleteAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
RequestNamespace="http://service.ips.salvationarmy.org/",
ResponseNamespace="http://service.ips.salvationarmy.org/",
Use=System.Web.Services.Description.SoapBindingUse.Encoded,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string importApp(
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int person,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string name,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string territory,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string location,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] bool primary,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> start,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> end,
[System.Xml.Serialization.XmlElementAttribute("categories", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string[] categories) {
object[] results = this.Invoke("importApp", new object[] {
person,
name,
territory,
location,
primary,
start,
end,
categories});
return ((string)(results[0]));
/// <remarks/>
public void importAppAsync(int person, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories) {
this.importAppAsync(person, name, territory, location, primary, start, end, categories, null);
/// <remarks/>
public void importAppAsync(int person, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories, object userState) {
if ((this.importAppOperationCompleted == null)) {
this.importAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OnimportAppOperationCompleted);
this.InvokeAsync("importApp", new object[] {
person,
name,
territory,
location,
primary,
start,
end,
categories}, this.importAppOperationCompleted, userState);
private void OnimportAppOperationCompleted(object arg) {
if ((this.importAppCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.importAppCompleted(this, new importAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
/// <remarks/>
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
RequestNamespace="http://service.ips.salvationarmy.org/",
ResponseNamespace="http://service.ips.salvationarmy.org/",
Use=System.Web.Services.Description.SoapBindingUse.Encoded,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string editApp(
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] int id,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string name,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string territory,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string location,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] bool primary,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> start,
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] Nullable<System.DateTime> end,
[System.Xml.Serialization.XmlElementAttribute("categories", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string[] categories) {
object[] results = this.Invoke("editApp", new object[] {
id,
name,
territory,
location,
primary,
start,
end,
categories});
return ((string)(results[0]));
/// <remarks/>
public void editAppAsync(int id, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories) {
this.editAppAsync(id, name, territory, location, primary, start, end, categories, null);
/// <remarks/>
public void editAppAsync(int id, string name, string territory, string location, bool primary, Nullable<System.DateTime> start, Nullable<System.DateTime> end, string[] categories, object userState) {
if ((this.editAppOperationCompleted == null)) {
this.editAppOperationCompleted = new System.Threading.SendOrPostCallback(this.OneditAppOperationCompleted);
this.InvokeAsync("editApp", new object[] {
id,
name,
territory,
location,
primary,
start,
end,
categories}, this.editAppOperationCompleted, userState);
private void OneditAppOperationCompleted(object arg) {
if ((this.editAppCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.editAppCompleted(this, new editAppCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
/// <remarks/>
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
private bool IsLocalFileSystemWebService(string url) {
if (((url == null)
|| (url == string.Empty))) {
return false;
System.Uri wsUri = new System.Uri(url);
if (((wsUri.Port >= 1024)
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
return true;
return false;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void deleteAppCompletedEventHandler(object sender, deleteAppCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class deleteAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal deleteAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void importAppCompletedEventHandler(object sender, importAppCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class importAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal importAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void editAppCompletedEventHandler(object sender, editAppCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class editAppCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal editAppCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
/// <remarks/>
public string Result {
get {
this.RaiseExceptionIfNecessary();
return ((string)(this.results[0]));Hi;
I used Fiddler to monitor the process, and it showed the request sent thru web service worked and returned a value, but in my .Net application the return captured as NULL. Could you please look into the code above and the result from Filddler and see if
you can help.
thank you.
REQUEST:
POST https://159.253.140.178/services/AppointmentService HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.4252)
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: 159.253.140.178
Content-Length: 1589
Expect: 100-continue
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://service.ips.salvationarmy.org/" xmlns:types="http://service.ips.salvationarmy.org/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<soap:Header>
<wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>
[email protected]
</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">
tpi4IPSws!
</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tns:importApp>
<person xsi:type="xsd:int">
169275
</person>
<name xsi:type="xsd:string">
Corps Officer (Cahul-Russia) Test12
</name>
<territory xsi:type="xsd:string">
CAN
</territory>
<location xsi:type="xsd:string">
TEST LOCATION 12
</location>
<primary xsi:type="xsd:boolean">
true
</primary>
<start xsi:type="xsd:dateTime">
2013-05-30T00:00:00
</start>
<end xsi:type="xsd:dateTime">
2014-06-04T00:00:00
</end>
<categories href="#id1" />
</tns:importApp>
<soapenc:Array id="id1" soapenc:arrayType="xsd:string[1]">
<Item>
vpsCat1
</Item>
</soapenc:Array>
</soap:Body>
</soap:Envelope>
RESPONSE:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Content-Length: 232
Date: Fri, 05 Sep 2014 19:45:22 GMT
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:importAppResponse xmlns:ns2="http://service.ips.salvationarmy.org/">
<return>
OK_572463
</return>
</ns2:importAppResponse>
</soap:Body>
</soap:Envelope>
Maybe you are looking for
-
Using PSE-12 on my Mac and got the message 'scratch disc full' I have backup disc attached to computer and tried making this the number 1 disc. I now can't get PSE-12 to open so that I can get back and reverse the order of these discs. What can I do?
-
Hi All, I have Created a Validation for Asset Master on company code and asset class in GGB0. When the company code is 1000 asses class range should be between 1010 to 1080.But the validation is not working. Could anyone provide information in this c
-
1 computer and 3 printers networkable?
I have a wrt54g and want to run all three printers off from one computer. How do I do this? Act as if I know nothing(I don't) and tell me how to do this the best way. Thank you for your help. Rob Also, all three printers have USB and ethernet ports.
-
Special Number format Mask Visual Compser
Hi !! I have a problem with Visual Composer. I want a specific mask in a number. For example: 1.234.567 Without decimal, and thousands separator dot ( . ). I am not able to have this format. I can have 1.234.567,00 or 1,234,567 but not my special fo
-
Re : Problem in arabic text printing in smartforms
Hi, In smartforms I am printing arabic text. Its coming correct up to the variable. But while printing Each and every word having space. How to avoid this space between thw arabic words while printing. Regards Anto