我正在开发一个 Java EE 6 自下而上的 JAX-WS 来公开一个 EJB3.1 无状态会话 bean。WAR 中的 Web 服务无法在部署时安装,因为它引用了一个可以假设尚未加载的外部 jar(或共享库)。
常见的建议是将 jars 包含在 /lib 文件夹中,这确实可以解决问题,但是 jars 需要保留在此外部共享库位置而不是 ear 文件中,因为它们总计 30MB。
有哪些技术可以在 Websphere (WAS v.8) 环境或任何服务器环境中解决此问题。我发现的一些建议包括:
1. define classpath in META-INF file.
2. define the resources in deployment.xml
3. alter class loading order
4. (from ibm) In the case where the jars are part of a Shared Library configured on WebSphere Application Server, then a User Library must be used to configure the project for development before generating the WebService.
但是,我未能在这些领域在线找到任何帮助。是否有另一种技术,或者有没有人知道如何做到这一点?提前致谢。
编辑:如果我使用类路径在 META-INF 中指定库,它们会在扩展、共享库等之前加载,但它们仍然在 WAR 之后加载,这是不好的。同样,这不是运行时问题,因为 Web 服务是在部署时动态创建的。