使用 cxf 在 Android 设备上创建网络服务?

Create webservice on Android device with cxf?

我能够使用 Apache CXF 在桌面 java 中创建网络服务。但是我需要它在 Android 设备上工作。

问题是 Android 中缺少 java.ws 软件包。我已经用 java.ws 类 将所有必需的 jar 复制到 android 项目的 libs 文件夹中,但是在 dexing 时(在 IDE 中构建应用程序)我'我有下一个错误:

Error:Android Pre Dex: [android-ws-combine.jar] trouble processing "javax/xml/bind/Binder.class":
Error:Android Pre Dex: [android-ws-combine.jar] Ill-advised or mistaken usage of a core class (java.* or javax.*)
Error:Android Pre Dex: [android-ws-combine.jar] when not building a core library.
Error:Android Pre Dex: [android-ws-combine.jar] This is often due to inadvertently including a core library file
Error:Android Pre Dex: [android-ws-combine.jar] in your application's project, when using an IDE (such as
Error:Android Pre Dex: [android-ws-combine.jar] Eclipse). If you are sure you're not intentionally defining a
Error:Android Pre Dex: [android-ws-combine.jar] core class, then this is the most likely explanation of what's
Error:Android Pre Dex: [android-ws-combine.jar] going on.
Error:Android Pre Dex: [android-ws-combine.jar] However, you might actually be trying to define a class in a core
Error:Android Pre Dex: [android-ws-combine.jar] namespace, the source of which you may have taken, for example,
Error:Android Pre Dex: [android-ws-combine.jar] from a non-Android virtual machine project. This will most
Error:Android Pre Dex: [android-ws-combine.jar] assuredly not work. At a minimum, it jeopardizes the
Error:Android Pre Dex: [android-ws-combine.jar] compatibility of your app with future versions of the platform.
Error:Android Pre Dex: [android-ws-combine.jar] It is also often of questionable legality.
Error:Android Pre Dex: [android-ws-combine.jar] If you really intend to build a core library -- which is only
Error:Android Pre Dex: [android-ws-combine.jar] appropriate as part of creating a full virtual machine
Error:Android Pre Dex: [android-ws-combine.jar] distribution, as opposed to compiling an application -- then use
Error:Android Pre Dex: [android-ws-combine.jar] the "--core-library" option to suppress this error message.
Error:Android Pre Dex: [android-ws-combine.jar] If you go ahead and use "--core-library" but are in fact
Error:Android Pre Dex: [android-ws-combine.jar] building an application, then be forewarned that your application
Error:Android Pre Dex: [android-ws-combine.jar] will still fail to build or run, at some point. Please be
Error:Android Pre Dex: [android-ws-combine.jar] prepared for angry customers who find, for example, that your
Error:Android Pre Dex: [android-ws-combine.jar] application ceases to function once they upgrade their operating
Error:Android Pre Dex: [android-ws-combine.jar] system. You will be to blame for this problem.
Error:Android Pre Dex: [android-ws-combine.jar] If you are legitimately using some code that happens to be in a
Error:Android Pre Dex: [android-ws-combine.jar] core package, then the easiest safe alternative you have is to
Error:Android Pre Dex: [android-ws-combine.jar] repackage that code. That is, move the classes in question into
Error:Android Pre Dex: [android-ws-combine.jar] your own package namespace. This means that they will never be in
Error:Android Pre Dex: [android-ws-combine.jar] conflict with core system classes. JarJar is a tool that may help
Error:Android Pre Dex: [android-ws-combine.jar] you in this endeavor. If you find that you cannot do this, then
Error:Android Pre Dex: [android-ws-combine.jar] that is an indication that the path you are on will ultimately
Error:Android Pre Dex: [android-ws-combine.jar] lead to pain, suffering, grief, and lamentation.
Error:Android Pre Dex: [android-ws-combine.jar] 1 error; aborting

我该怎么做?任何另一个 way/approach 在 Android 上公开网络服务?

PS。 android-ws-combine.jar 已下载 here

PPS。实际上我不认为任何像 javax.ws 这样的桌面包被真正使用,除了注释。我认为 Web 服务实现 类 完全在 CXF 中。

好的,我做到了 - 必须修补 cxf 核心、cxf 传输、cxf 发现 api、将 jaxb 移植到 android、修补 txw、编辑 wsdls 和捆绑默认 wsdls(如 ws -寻址),补丁资源加载(因为所有 META/* 资源都被 android 构建器删除),补丁获取包注释(android 不支持)。 2周10hdebugging/patching和udp包拦截