我目前正在努力将应用程序从Java7
上运行的Glassfish 3.1.2.2
升级到Java8
上运行的Glassfish 4.1
。该应用程序打包为ear
个文件,其中包含ejb-jar
和war
。 war
反过来包含一些webservices
。
在Glassfish 3.1.2.2
中,部署ear
会导致war
曝光一些webservices
。但是,当我在ear
部署Glassfish 4.1
时,没有公开webservice
。在ear
中列出Glassfish
的组件时,war
未在webservices
中列出web
(仅4.1
)(但是3.1.2.2
)。
我尝试将war
- 文件部署为独立应用程序,在执行此操作时,webservices
可用。
有没有人知道在使用Glassfish 4.1通过webservices
文件部署ear
时是否存在已知错误?
说到变化,我已经升级了一些依赖项,但据我所知,没有什么可以影响它。
我的application.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>myApplication-ear</display-name>
<description>myApplication</description>
<module>
<ejb>myApplication-ejb-5.2-SNAPSHOT.jar</ejb>
</module>
<module>
<web>
<web-uri>myApplication-war-5.2-SNAPSHOT.war</web-uri>
<context-root>/myApplication-war</context-root>
</web>
</module>
</application>
答案 0 :(得分:1)
问题是旧依赖:
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2.7</version>
</dependency>
我删除了它,因为它已经包含在java安装中的rt.jar中。 不知怎的,Glassfish根本没有处理这个问题,webservices根本没有工作,并且在server.log中没有错误的痕迹。