我在教JAXB时找不到位于另一个Eclipse项目中的.jar文件中的类。
我们正在开发多个Web应用程序。每个应用程序都是一个单独的Eclipse项目,最终打包为一个单独的OSGi插件,然后部署到我们的服务器运行时。
使用WSDL指定每个应用程序提供的服务。由于所有服务都使用了几种常见的数据结构,因此我们将这些定义移到了一个单独的模式中,该模式位于“共享”模式中。 project和所有WSDL使用import语句导入该模式,如:
...
<xsd:schema>
<xsd:import namespace="SharedTypes.v1_1.xsd"
schemaLocation="../Shared/SharedTypes.v1.1.xsd">
</xsd:import>
</xsd:schema>
...
即。他们伸出了他们自己的项目(&#39; ...&#39;)并进入了共享&#34;共享&#34;项目导入该架构。
XML&lt; =&gt;从该共享模式生成的Java绑定将保存到名为&#34; xsd.v1.1.sharedtypes.jar&#34;的.jar中。它位于项目&#34;共享&#34;的/ libs-folder中。 该jar包含与模式中定义的类型相对应的所有类。一个元素,比如,&#39; X&#39;被编译成相应的类&#34; xsd.v1.1.sharedtypes.X&#34;。这个.jar被声明为从&#34;共享&#34; OSGi捆绑。
引用OSGi包导入此包,即他们声明&#34;共享&#34;作为依赖。
当我们尝试生成XML&lt; =&gt;时,会出现问题。来自每个项目中的WSDL的Java绑定。在那里,我们总是遇到一个编译错误,其中Eclipse JAXB向导声明它无法编译它刚从WSDL生成的类,因为它无法找到该共享.jar文件中包含的类。
但是.jar DOES 包含缺少的类。它也被宣布为由共享&#34;共享&#34;插入。该插件正被导入应用程序&#39;插件。所以这些类应该在编译时可见,但显然JAXB编译器看到的方式不同!
任何想法,如何教会JAXB在创建XML绑定代码时将导出的.jar引用的OSGi插件包含到编译的类路径中?
希望我能说清楚......
微米。