Web Service Tip: JSPS CALLING Web SERVICES

xiaoxiao2021-03-06  14

Article Source:

Http://radio.weblogs.com/0132036/2003/12/11.html

Web Service Tip: JSPs Calling Web Services How do I call a Web service from a JSP Seems like a simple question but it turns out there are many ways - some quick and dirty and others more correct Let's not debate correctness (do you really?. Want to do this ?! and first solve the problem . more details on generating the stub) If I add a main method to that stub, I can easily test that stub against my Web service: public static void main (String [] args) {try {GreetingServiceStub stub = new GreetingServiceStub (); System.out.println (STUB.SAYHELLO ("Mike"));} catch (Exception EX) {EX.PrintStackTrace ();}} That Bit of Code, Will Become The Foundation of How To Do My First Cut of Calling Of A Web Service from a JSP. The JSP Page I Want To Hook It Into Looks Like This: First I Would Like To Make A Direct Call from My Jsp. All I Have to Do Is Add A Scriplet Based On That Above Code: <% @ Page ContentType = "Text / HTML; Charset = Windows-1252" Import = "com.rpc.greetingServicestub"%>%> Web service JSP client - scripTlet </ title> </ head> <body> > <% String parm1 = request.getParameter ("parm1"); string result = ""; if (parm1 == null) PARM1 = "";%> <br> <form action = "Greeting.jsp" Method = " Get> <Table Border = "0"> <TR> <</p> <p>TD> Greeting: </ b> </ td> <TD> <input type = "text" name = "parm1" size = "14" value = "<% = parm1%>"> </ td> <td> <Input Type = "Submit" value = "submit" /> </ td> </ tr> </ table> <% try {greetingservicestub stub = new greetingservicestub (); result = Stub.SAYHELLO (PARM1);} catch (exception e) {result = "Web service unreachable tonight :-(";}%> the response returned is: <% = result%> </ body> </ html> Note The import at the top of com.rpc.GreetingServiceStub which is the stub itself. Not particularly elegant, but it gets the job done. Abstracting it a little further, I could investigate Oracle's Web service tag library which takes away a bit of the code and makes it a little more declarative The extra work required here is of course reading the WSDL to get the binding, portType and the like See below for the same example using the tag library:.. <% @ taglib uri = "http: // XMLns.Oracle.com/J2EE/JSP/TLD/ojsp/wstaglib.tld "prefix =" wstag "%> <% @Page Con TENTTYPE = "Text / HTML; Charset = Windows-1252"%> <html> <head> <meta http-equiv = "content-type" content = "text / html; charSet = windows-1252"> <title> Web Service JSP Client - Tag Library </ Title> </ head> <body> <% string parm1 = request.getParameter ("parm1"); if (parm1 == null) PARM1 = "" "";%> <fab <<form Action = "GreetingTaglib.jsp" Method = "get"> <</p> <p>Table border = "0"> <tr> <TD> Greeting: </ b> </ td> <td> <input type = "name =" PARM1 "size =" 14 "value =" <% = PARM1 %> "> </ Td> <td> <input type =" submit "value =" submit "/> </ td> </ tr> </ table> </ form> <p> <wstag: webservice id = "Greeting" wsdlurl = "http://127.0.0.1:8888/ws/greetingservice?wsdl" scope = "page" binding = "greetingbinding" soaplocation = "http://127.0.1:8888/ws/greetingservice" / > <wstag: invoke id = "resp" WebService = "greeting" Operation = "SayHello"> <wstag: part name = "p" value = "<% = parm1%> /> </ wstag: invoke> <br > The response returned is: <% = pagecontext.Findattribute ("resp")%> </ body> </ html> if You Look Again at the WSDL, you will see all the settings That were passed to the tags - EG GreetingBinding from the binding section and operation name from the portType section. If you plan on trying this out yourself, you are probably wondering where this Web services tag library jar and tld is located. If you look in your Orac Leas 9.0.4 Distribution, You will Find The Ojsputil.jar Located in The <Oracle_Home></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-67633.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="67633" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.032</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'x_2BjGOfqKzTGVA0RgFOyYh8PXkQQgchY_2Ftn6aPW4uUK8rOUROYtF21KIUSo1zT3k89Rq4uY9rWXLp5oWx'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>