玻璃鱼4.1:耳朵内部的战争不会暴露网站服务



我当前正在升级从Glassfish 3.1.2.2上运行的Java7升级到在Glassfish 4.1上运行的Java8。该应用程序包装为ear -FILE,其中包含ejb-jarwarwar依次包含一些webservices

Glassfish 3.1.2.2中,部署ear将导致war暴露许多webservices。但是,当我在Glassfish 4.1中部署ear时,没有webservice暴露。当在Glassfish中列出ear的组件时,war4.1中不列出webservices(仅web)(但在3.1.2.2中使用)。

我尝试部署war -FILE作为独立应用程序,并且在执行此操作时,webservices可用。

有人知道是否存在已知错误,该错误是通过使用玻璃鱼4.1的ear -FILE部署webservices

在变化方面,我已经升级了一些依赖关系,但是据我所知,没有什么能影响这一点的。

我的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>

问题是一个旧的依赖性:

  <dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-rt</artifactId>
    <version>2.2.7</version>
  </dependency>

我将其删除,因为它已经包含在Java安装中的RT.Jar中。以某种方式Glassfish根本没有处理此操作,网络服务根本无法正常工作,并且服务器中没有错误痕迹。Log

这可以是您的方案(?):EJB模块部署可能会在以Web服务曝光并具有处理程序的EJB时失败有依赖性。这是由EJB容器初始化和加载EJB Web服务的方式引起的,解决方法是将EJB重命名,以便在具有依赖关系的EJB之后初始化了EJB作为Web服务的EJB。

最新更新