GWT 内容未在 centOS 7.5 上显示

Posted

技术标签:

【中文标题】GWT 内容未在 centOS 7.5 上显示【英文标题】:GWT content not showing on centOS 7.5 【发布时间】:2021-08-31 06:25:16 【问题描述】:

我正在开发一个基于 GWT 的项目。当我们在centOS 6.9 版本上部署项目时,它工作正常并且所有内容都可以访问或可见。但是,当我们将操作系统版本更改为centOS7.5 时。它部署成功,但在访问索引页面时,它只显示等待 gif,然后无法加载 java 内容。 我在检查元素期间的一些观察如下。

CentOS7.5

在 centOS7.5 中,content div 为空。我不知道为什么 GWT 不呈现内容。在 tomcat 日志中没有看到任何异常或堆栈跟踪。我还更新了 pom.xml 中的依赖版本,但仍然得到相同的结果。

CentOS6.9

我还观察到了不同的源层次结构。两台服务器上都安装了相同的 rpm。 CentOS7.5 不显示 top_banner.jpg 和 /image 目录。

pom.xml 如下,而gwt.version = 2.9.0

<dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-dev</artifactId>
        <version>$gwt.version</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-servlet</artifactId>
        <version>$gwt.version</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-user</artifactId>
        <version>$gwt.version</version>
        <scope>provided</scope>
    </dependency>

Application.gwt.xml

<!DOCTYPE module PUBLIC "//gwt-module/" "http://google-web-toolkit.googlecode.com/svn/tags/2.4.0/distro-source/core/src/gwt-module.dtd">
<module rename-to="agentportal">

    <add-linker name="xsiframe" />
    <set-configuration-property name='xsiframe.failIfScriptTag' value='FALSE' />

    <!-- Dependencies -->
    <inherits name='com.google.gwt.user.User' />
    <inherits name='com.seamless.gwt.components.Module' />
    <inherits name='org.puremvc.PureMVC_Java_MultiCore' />
    <inherits name='com.seamless.common.GWTModule' />
    <inherits name='com.seamless.ers.interfaces.ersifcommon.GWTModule' />
    <inherits name='com.seamless.ers.interfaces.ersifclient.GWTModule' />
    <!-- ers-supportsystem-client-transport-ws -->
    <inherits name="com.seamless.ers.components.supportsystem.interfaces.GWTModule"/> 
    <!-- ers-supportsystem-client -->
    <inherits name="com.seamless.ers.interfaces.platform.clients.transaction.GWTModule"/>

    <!-- ers-txe-client-model -->
    <inherits name='com.seamless.ers.interfaces.platform.clients.GWTModule' />
    
    <!-- Enable Debug IDs -->
    <inherits name="com.google.gwt.user.Debug"/>
    <inherits name="com.allen_sauer.gwt.log.gwt-log-DEBUG" />
    
    <extend-property name="log_level" values="DEBUG,WARN" />
    
    <!-- Disable DIV logger -->
     <set-property name="log_DivLogger" value="DISABLED" />


    <!--  What languages should be supported? -->
    <extend-property name="locale" values="en" />
    <extend-property name="locale" values="fr"/>
    <extend-property name="locale" values="ar"/>


    <inherits name='com.google.gwt.user.theme.chrome.Chrome' />


    <entry-point class='com.seamless.ers.client.agentPortal.client.Application' />

    <source path="client">
            <exclude name="**/tests/*" />
    </source>

    <stylesheet src='Application.css' />

    <servlet
        class="com.seamless.ers.client.agentPortal.server.AgentPortalServiceImpl"
        path="/agentportal_service" />
    <servlet path="/sessionService" class="com.seamless.ers.client.agentPortal.server.SessionServiceImpl"/>

</module>

两台服务器上的部署差异

在上图中,我可以清楚地看到/WEB-INF 中的不同之处。 classesdeploy 目录几乎是空的。连同其他标记

有人可以指导我这里缺少什么,这个问题的根本原因是什么以及为什么它会在 centOS7.5 上发生。

【问题讨论】:

您说“两台服务器上安装了相同的 RPM”。 RPM 是多少? 底层 Centos 版本应该无关紧要。我假设您在两台主机上都运行 Tomcat 9。也许两台主机上的Tomcat配置不一样?或者您没有在两台主机上为您的 webapp 部署相同的 WAR 文件? @RobNewton 感谢您的回复,RPM 包含战争文件。基本上它就是整个 Web 应用程序。 我已经进一步调查了这个问题,我们有三种不同的情况。 i) centos7 和 tomcat 7,它工作正常。 ii) centos6 和 tomcat 9,它工作正常。我们面临的第三个问题。 iii)带有tomcat 9的centos7,它不起作用。我相信,centos7 可能存在一些权限问题或战争部署的一些变化 rpm 是否将您的 WAR 文件(例如 myapp.war)复制到 tomcat '.../webapps/' 目录中,然后 Tomcat 会为您解包。还是 rpm 安装将解压后的 web 应用程序目录复制到 tomcat '.../webapps/' 目录中? 【参考方案1】:

我在对抗 GWT 时也面临同样的问题。问题在于 GWT 的解析器级别。我的 Screen.java 类中有“_”作为变量,它扩展了 com.google.gwt.user.client.ui:Composite

重命名变量名并重构代码后,屏幕为我加载。请尝试这样做。

【讨论】:

以上是关于GWT 内容未在 centOS 7.5 上显示的主要内容,如果未能解决你的问题,请参考以下文章

收藏的内容未在 webview 上正确显示

Summernote 编辑器未在 django 管理页面上显示任何内容

Swagger UI 未在 index.html 页面上显示任何内容

简单的 GLSL 示例未在屏幕上显示任何内容

带有 ArrayAdapter 的 ListView 未在 Android 11 上显示内容

Bootstrap-Vue 分页未在屏幕上显示更新的切片数组内容