webservice菜鸟教程(web 菜鸟教程)
webservice接口怎么使用
webservice的调用,常用的大约有3种方式:
1、使用axis调用
2、使用xfire调用
3、使用cxf调用
项目中,采用axis进行调用,记录如下,备忘:
ps教程:想当年的时候是用的xfire方式调用的,结果没做记录,现在已经完全记不得怎么玩了。所以说要多写博客啊 t_t
版本说明:
aixs版本:axis-bin-1_4.zip
java环境略
第一步:确保wsdl文件可用,文中为获取到sendsmsservice.wsdl,当然url的也行。
第二步:执行生成客户端代码的脚本。脚本内容为:
set axis_lib=d:axis-1_4lib
set java_cmd=java -djava.ext.dirs=%axis_lib%
set output_path=.
set package=info.jyzh.wap.liaoning.push
%java_cmd% org.apache.axis.wsdl.wsdl2java sendsmsservice.wsdl -o%output_path% -p%package% -t
#查看wsdl2java的使用帮助#%java_cmd% org.apache.axis.wsdl.wsdl2java -help
ok,至此,客户端代码就生成出来了。还带了一个单元测试哦。
实际工作中,碰到以下情况,客户端不能直接连上webservice服务器,中间被强大的代理服务器挡住了。如下图:
为此,修改生成的代码,本次是在sendmmsserviceimplservicesoapbindingstub中作修改,如下:
static {
axisproperties.setproperty("http.proxyhost","88.88.88.88");
axisproperties.setproperty("http.proxyport","8080");
axisproperties.setproperty("http.proxyuser","asp教程yy");
axisproperties.setproperty("http.proxypassword","123456");
_operations = new org.apache.axis.description.operationdesc[1];
_initoperationdesc1();
}直接axis调用远程的web service我觉得这种方法比较适合那些高手,他们能直接看懂xml格式的wsdl文件,我自己是看不懂的,尤其我不是专门搞这行的,即使一段时间看懂,后来也就忘记了。直接调用模式如下:import java.util.date;import java.text.dateformat;import org.apache.axis.client.call;import org.apache.axis.client.service;import javax.xml.namespace.qname;import java.lang.integer;import javax.xml.rpc.parametermode; public class caclient { public static void main(string[] args) { try { string endpoint = ""; //直接引用远程的wsdl文件 //以下都是套路
service service = new service(); call call = (call) service.createcall(); call.settargetendpointaddress(endpoint); call.setoperationname("adduser");//wsdl里面描述的接口名称 call.addparameter("username", org.apache.axis.encoding.xmltype.xsd_date, javax.xml.rpc.parametermode.in);//接口的参数 call.setreturntype(org.apache.axis.encoding.xmltype.xsd_string);//设置返回类型
string temp = "测试人员"; string result = (string)call.invoke(new object[]{temp}); //给方法传递参数,并且调用方法 system.out.println("result is "+result); } catch (exception e) { system.err.println(e.tostring()); } }}2,直接soap调用远程的webservice这种模式我从来没有见过,也没有试过,但是网络上有人贴出来,我也转过来import org.apache.soap.util.xml.*;import org.apache.soap.*;import org.apache.soap.rpc.*; import java.io.*;import java.net.*;import java.util.vector; public class caservice{ public static string getservice(string user) { url url = null; try { url=new url(""); } catch (malformedurlexception mue) { return mue.getmessage(); } // this is the main soap object call soapcall = new call(); // use soap encoding soapcall.setencodingstyleuri(constants.ns_uri_soap_enc); // this is the remote object we're asking for the price soapcall.settargetobjecturi("urn:xmethods-casynrochnized"); // this is the name of the method on the above object soapcall.setmethodname("getuser"); // we need to send the isbn number as an input parameter to the method vector soapparams = new vector(); // name, type, value, encoding style parameter isbnparam = new parameter("username", string.class, user, null); soapparams.addelement(isbnparam); soapcall.setparams(soapparams); try { // invoke the remote method on the object response soapresponse = soapcall.invoke(url,""); // check to see if there is an error, return "n/a" if (soapresponse.generatedfault()) { fault fault = soapresponse.getfault(); string f = fault.getfaultstring(); return f; } else { // read result parameter soapresult = soapresponse.getreturnvalue (); // get a string from the result return soapresult.getvalue().tostring(); } } catch (soapexception se) { return se.getmessage(); } }}
3,使用wsdl2java把wsdl文件转成本地类,然后像本地类一样使用,即可。
webservice服务端怎么访问数据库
为了避免再次被说标题党,这里先说明些事情:
第一,android没法直接连接SQLServer,起码我没有发现方法,想想看,sqlserver安装之后有多大,android程序是跑在手机上的,想让程序直接访问sqlserver,那手机要多大的内存?
第二,本文是通过一个“桥梁”——webservice来间接访问SQLServer的,当然还有其他方法,感兴趣的同学可以自行百度。
如果理解了上面两点,好了咱们继续。
教程会拿一个具体的例子来讲,一步一步来,也许细节上还可以继续加工,但大致的流程就是这样的。
本教程有五个部分:
项目说明
开发环境部署
数据库设计
服务器端程序设计
客户端(android端)程序设计
项目说明
这个项目意在实现一个简单的android连接Sqlserver的功能。
就做一个简单的库存管理功能,包括对仓库内现有货物的查看、货物信息的增加删除。
如何在ASP.net中调用webservice里的一个方法
文件,将AJAX的组件添加到工具箱,工具箱上会显示一条AJAX的控件选项,添加AJAX控件里面的SCRIPTMANAGER控件到页面,这些是必须的前提;然后有两种方法可以使用JAVASCRIPT异步调用服务器:
1。WEBSERVICE方法:新建一个WEBSERVICE,新建一个WEBSERVICE方法,此方法用来处理服务器数据,返回一个结果。注意,在此WEBSERVICE声名类的代码上面加上[scripyservice](VB为scriptservice _),不加此句,无法调用。然后在SCRIPTMANAGER控件的webservice属性里面添加此WEBSEVICE文件相对路径,就可以在javascript里调用此方法了。调用方式:webservice名.方法名(参数1,参数2....回调函数名),然后声名回调函数,function 回调函数(result),这个result就是WEBSERVICE方法返回的结果,可以在回调函数中直接使用,比如alert(result);这就是整个过程。
2,页面调用方法:页面调用方法需要将页面方法声明为共享方法(C#为static,vb为shared),在方法上增加[webmethod]属性,将SCRIPTMANAGER控件的enablepagemethods属性设为true,这样就可以用javascript调用页面方法了,调用方式pagemethods.方法(参数1,参数2....回调函数)
另外,虚机团上产品团购,超级便宜
菜鸟程序员需要学习哪些基础知识
java学习是由简入难的学习过程,不要一开始就学习太过于复杂的,也不要好高骛远,java的基础很重要,所以一定要由最基础的学起,抓实基础。下面是昆明北大青鸟java培训小编结合大部分情况为大家总结下:菜鸟程序员需要学习哪些基础知识。
首先要学习java的基础知识。
不要被新技术迷惑,所谓万变不离其宗,新技术都是基于java的基础之上,如果基础不扎实,对于这些新技术的理解也是一知半解,学不到根源。
1、web开发
全面的JEE的web开发知识:Servlet+JSP+javaBean+TagLib,到这里做一个完整的web应用项目开发。
2、J2EE基础
j2ee说白了就是做网页,这时候你要从先从java里脱身出来,学些跟网页有关的东西:
html:很简单的东西不是太笨的话半天左右即可搞定
js:易学难精,想速度找工作不必花太多时间,随便买本javascript书略读并备查推荐:JavaScript高级程序设计;JavaScript权威指南
数据库:如果没有基础的话,建议多花时间,至少一个月,开始建议用mysql,然后是oracle,然后是sqlserver,这段时间最关键的就是sql语言的编写。
xml就是一种封装数据的格式,没啥好学的,练习一下怎么用dom4j或者jdom读写xml即可。
jsp,servlet,tomcat:这段时间说白了就是用jsp来做个网站。
3、EJB开发
包含全面的EJB知识:1)EJB入门和无状态会话Bean;2)有状态会话Bean;3)BMP和CMP是实体Bean;4)jms和MessageDrivenBean;5)事物和安全(JTA、JTS和JAAS);6)WebService的开发和应用;
要会使用主流框架
框架其实就是一些公共的工具和方法,被封装到一个盒子中供您随时调用,框架也是别人用java编写的,相当于你调用别人写好的公共模块,可以节省时间和效率。
主要是3大框架:
mvc框架:struts,struts2,jsf
or映射框架:hibernate,ibatis
业务框架:spring
重量级框架:ejb
这些都是java技术的学习知识点,和学习流程,先简单后复杂,由一个点展开,开始更广更深入的学习。这些都掌握了以后,你就学会了java,具备了基本编程的能力,但不代表你就能做出优良的产品,所以接下来,你就需要学习软件工程和算法,进一步的提升自己。想更快更扎实的学习java知识吗?赶紧到昆明北大青鸟java培训机构报名吧,选择昆明北大青鸟,你绝不后悔!
菜鸟求助关于WebService的问题
早前写webservice遇到的错误 org.xml.sax.SAXException: Bad envelope tag: definitions 刚开始以为是报文出错,格式有问题,检查过后感觉没有问题。 后来检查WSDL,果然是WSDL搞错了 正确:127.0.0.1:7001/crmService/services/agentInt
如何在websphere使用axis2发布webservice
首先环境是内嵌在RAD7中的websphere,axis2采用的是1.6.2的最新版本。
出现如上问题的原因是因为websphere自己支持的jar跟axis2应该是有冲突,虽然我遇到的这个问题的冲突表现跟其他人的不太相同,我的报的是no method found ,但是我查看过源码发现方法是存在的。
解决方法是从这个网址搜到的,不过说的不是特别详细,摸索了半天才完全改好。解决方法对于包冲突比较通用。
1,将应用axis2.xml中的EnableChildFirstClassLoading 参数设为true (Axis2 1.5.5 或者更高版本)
2,设置应用的类加载级别为 Classes loaded with local class loader first (parent last)
3,设置WAS server JVM的自定义参数:com.ibmcom.ibm.websphere.webservices.DisableIBMJAXWSEngine 为 true
第一步好说。
第二步做的时候,遇到了一个问题,在打开administration console之后,我设错了路径,正确的设置路径应该是选择应用程序,点击进入后,点管理模块(我之前是点了类装入和更新检测,修改之后无效),点击对应的模块进入,即可看到最下面要修改的类加载级别。
第三步,应用服务器--》yourserver--java和进程管理 下的 进程定义---其他属性下的 java虚拟机--其他属性下的定制属性,如果没有该属性,则新建之。
应该要重启一下服务器吧。问题解决。描述地比较菜鸟,希望能给跟我一样迷茫的人一点帮助。