- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
以前开发java程序时导入jar包都是用一下的方法:??? 工程点击右键-Build Path-Add Libraries-User Library-选择包含需要的jar包的Library(如果没有的话就点击User Libraries新建一个Library,然后再选中)但是,在Android中这样导入jar包会导致程序在模拟器中运行时抛出java.lang.NoClassDefFoundError异常,在Android中导入jar包的步骤如下:????? 工程点击右键-Build Path-Add External Archives-选择要导入的jar包另外还有一个问题就是:Android模拟器访问Tomcat上部署的webservice程序时,不能用localhost或者本机IP,Android默认访问本机地址为。
原因猜想??? 对于产生上述NoClassDefFoundError的原因,查看一下工程中的classpath文件就可以找到。如果是利用第一种方法导入的jar包 的话,classpath文件中会生成这样一条语句:classpathentry kind=con path=org.eclipse.jdt.USER_LIBRARY/KSOAP2/,这种导入jar包的方法依赖于开发环境 eclipse;而如果用第二种方法导入jar包的话,会在classpath中产生如下的语句:classpathentry kind=lib path=D:/JAVATOOLS/ksoap2-android-assembly-2.5.2-jar-with- dependencies.jar/,这种导入方式是用的绝对路径,与eclipse开发环境无关,而且以这种方式导入后,jar包的信息会被 加到工程class.dex中,进而会被打包到apk中。??? 我猜想,在运行虚拟机的时候,虚拟机是脱离了eclipse开发环境的,所以第一种依赖于eclipse环境的导入方式会出现上述错误;而第二种导入方式由于不依靠eclipse,将jar包的信息放到了class.dex中,所以运行无误!
Android通过Ksoap2链接WebService上传图片的功能
介绍一下编译环境:Tomcat6.0+Myeclipse6.5GA版。为什么选用Myeclipse,是因为他集成了很多工具,如果你愿意尝试,可以使用Eclipse去自定义加载一些工具。
在前面我写过一篇文章是Android利用ksoap2方式连接webservice(/s/blog_774be4790100qzg6.html)。这里我们也要用到同样的技术。
再申明一个问题,我的编写是没有日志或者打印的,如果你要看进行到了哪一步,请自己写一下打印。
编写Webservice。
我们在Myeclipse当中新建一个Web Project
我们在默认的包中新建一个类,名字叫做Upload。这个文件可以包含WSDL当中任意多个方法。所以命名情况我不做多解释,你按照你对应的项目或者工程新建类名即可。还有一点要指出的是,由于Java WebService传入参数的特殊性(虽然定义的参数是Java支持的参数,但是通过链接传入的参数的类型都为String),而我要将一个图片写入字节流,再把图片字节流转为String对象的值的时候,用到了Base64编码。同样,Base64用到一个jar包:commons-codec-1.5.jar,加上上篇文章的ksoap2的jar包文件。
新建了完了后,编写代码:如图所示,import那部分自己添加,我就不贴了。
说明一下类中的方法怎么和WebService对应
UpdateImage是客户端上传到服务器的方法;形参image是传入的Base64编码后的String对象;形参name是传入的上传后在服务器上的文件名字。fos输出的地址将会在服务器d盘上存根。
这样我的Web Service接口就定义好了
发布Web Service接口
利用Axis2可以很快的发布接口。
首先在网上下载一个axis2.war文件,下载后,将其保存在Tomcat的WebRoot目录下,然后启动Tomcat,这是在WebRoot目录下会生产一个axis2文件夹,里面的文件夹做什么用,这里我就不多做说明,有兴趣的可以问我,也可以在网上找这方面的资料。
在axis2的WEB-INF目录下,新建一个pojo文件夹
然后将我们编写好的Upload.java所编译后的.class文件复制到pojo文件夹中,重启Tomcat服务器。这样WebService接口就发布了,可以尝试打开:
http://ip:port/axis2/services/Upload?
文档评论(0)