我正在开发一款适用于Android平板电脑的应用,这是一种通过客户端的NetSuite ERP系统读取信用卡和处理付款的方式。我使用Apache.CFX中的wsdl2java为NetSuite的Web服务生成java文件。但是,大多数类文件都是从javax.xml和javax.jws导入的。
作为解决这个问题的一种方法,因为Eclipse在项目库中使用rt.jar时无法编译,我使用jarjar来重构rt.jar,以便将这些引用改为ns.javax。执行此操作并将重构jar放入库中可以消除“问题”选项卡中堆积的错误。但是,它仍然无法编译,因为Java核心引用仍在进行中。
所以我做了下一个逻辑步骤,并使用jarjar重构了所有java和javax。现在我遇到了新的错误,现在大部分都来自于以下所有Web服务类:
The constructor QName(string, string) is undefined
我更改了导入以删除新的类前缀,但之后只是创建了新的错误,因为无法在整个Web服务文件中定义各种其他类和对象。
我似乎无法找到相关资源的方式来实现这一点,因为我的所有搜索都会引用其他可用的NetSuite Android应用程序,而不是在Android平台上使用Web服务。现在,我只能猜测,我最多只能以半正确的方式解决这个问题。
那里有库可以用来替换可以在Android平台上运行的rt.jar吗?
----编辑----
我想我会添加一些导致此问题的核心导入示例......
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
import javax.xml.namespace.QName;
答案 0 :(得分:0)
我可以使用EasyWSDL.com从wsdl生成与Android兼容的Web服务类。我不得不修改一些类文件,因为它生成的方法超出了Java对方法大小的64k限制。