将 GWT-RPC-Applicaton 部署到 JBoss AS 7.1.1 时出现 ClassNotFoundException

2023-12-31

我有一个 Maven 基础 GWT 应用程序。

当我通过 Maven 编译、构建并部署它到 JBoss AS 7.1.1 时,我的 GWT-RPC-Service 出现了 ClassNotFoundException。在我包含之前,我部署了并且可以显示 GWT-Widgets,所以 GWT-Jars 应该在那里......

我的 Maven 依赖项如下所示:

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-dev</artifactId>
  <version>2.5.0</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-user</artifactId>
  <version>2.5.0</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-servlet</artifactId>
  <version>2.5.0</version>
  <scope>compile</scope>
</dependency>

我的 EAR 看起来像这样:

-myEar.ear
|  |
|  |- core.jar
|
|--|- gwt-ui.war
|  |
|  |-- gwt-ui
|  |   |--  gwt
|  |   |--  sc
|  |   |--  wgt-ui.nocache.js
|  |
|  |-- META-INF
|  |   | (is Empty)
|  |
|  |-- WEB-INF
|  |   |-- classes
|  |   |     |
|  |   |     |- mygwtProj.client
|  |   |     |   |- services
|  |   |     |   |   | - MyService.class
|  |   |     |   |   | - MyServiceAsync.class
|  |   |     |   |- dto
|  |   |     |   |   | - DTO.class
|  |   |     |
|  |   |     |- mygwtProj.server
|  |   |     |   |- MyServiceImpl.class
|  |   |-- deploy
|  |   |-- lib
|  |   |     | (all gwt-jars-files)
|  |   |-- beans.xml
|  |   |-- web.xml

我的服务:

import java.util.List;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import mygwtProj.client.dto.DTO;

@RemoteServiceRelativePath("myService")
public interface ShopService extends RemoteService{
    List<DTO> getAircrafts();
}

我的服务异步

import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
import mygwtProj.client.dto.DTO;

@RemoteServiceRelativePath("myService")
public interface ShopService extends RemoteService{
    void getAircrafts(AsyncCallback<List<DTO>> callback); 
}

我的服务实现

import java.util.ArrayList;
import java.util.List;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import mygwtProj.client.dto.DTO;
import mygwtProj.client.services.MyService;

public class MyServiceImpl extends RemoteServiceServlet implements MyService {
    private static final long serialVersionUID = 1L;

@Override
public List<DTO> getAircrafts() {

    List<DTO> list = new ArrayList<DTO>(1);
    list.add(new ShopItemDTO(1, "man", "typ", 1.0));
    return list;
}
}

堆栈跟踪:

15:28:24,684 WARN  [org.jboss.modules] (MSC service thread 1-6) Failed to define class mygwtProj.server.MyServiceImpl in Module "deployment.myEar.ear.gwt-UI.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link mygwtProj/server/MyServiceImpl (Module "deployment.myEar.ear.gwt-UI.war:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)
at org.jboss.modules.Module.loadModuleClass(Module.java:517)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:107) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:77) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:135) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_03]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_03]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]
Caused by: java.lang.NoClassDefFoundError: myProj/client/services/MyService
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_03]
at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [rt.jar:1.7.0_03]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_03]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
... 21 more
Caused by: java.lang.ClassNotFoundException: myProj.client.services.MyService from [Module "deployment.myEar.ear.gwt-UI.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 26 more

15:28:24,700 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-6) WELD-000119 Not generating any bean definitions from myProj.server.MyServiceImpl because of underlying class loading error
15:28:24,700 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-6) catching: org.jboss.weld.resources.spi.ResourceLoadingException: java.lang.ClassNotFoundException: myProj.server.MyServiceImpl from [Module "deployment.myEar.ear.gwt-UI.war:main" from Service Module Loader]
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:74) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:107) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:77) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:135) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) [weld-core-1.1.5.AS71.Final.jar:2012-10-12 10:00]
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_03]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_03]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03]
Caused by: java.lang.ClassNotFoundException: myProj.server.MyServiceImpl from [Module "deployment.myEar.ear.gwt-UI.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
... 12 more

有人知道出了什么问题吗?


感谢您的输入。 我现在找出了问题所在。

是一个愚蠢的错误。在maven配置中,我设置client-Package中的所有类不应包含在打包中,因为它们被编译为JS。所以这包括我的服务接口...... 我将其移至一个新的共享包并将其包含在 gwt.xml 中。

还将 gwt-user 和 gwt-dev 更改为提供的 Maven 范围,并将 gwt-servlet 更改为运行时。

通过此配置,它可以工作:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 GWT-RPC-Applicaton 部署到 JBoss AS 7.1.1 时出现 ClassNotFoundException 的相关文章

  • 带下拉箭头的 GWT 文本框

    我想在文本框中有一个下拉箭头 在我的例子中实际上是 SuggestBox GMail 执行此操作是为了实现高级搜索功能 打开高级搜索对话框 要使该箭头显示在 TextBox 的右侧并可单击 正确的 GWT 布局是什么 看看 GMail 我发
  • 如何让 Spring 连接我的 JmsComponent

    我正在编写一个使用 Akka Akka Camel 和 Spring 进行配置的应用程序 应用程序需要充当针对各种应用程序服务器的独立 JMS 客户端 为此 它需要使用 JNDI 设置 JMS 连接工厂 我正在用 jBoss 测试这个 我对
  • 架构问题:GWT 还是 Vaadin 创建桌面应用程序?

    我们计划创建一个提要阅读器 as a Windows 桌面和 iPad 应用程序 正如我们希望能够显示网站 AND 运行 我们自己的 JavaScript在此应用程序中 我们考虑将应用程序作为 HTML CSS JavaScript 交付
  • 如何在远程计算机上调试 war 文件?

    如果我有一个 jboss 服务器在另一台机器上运行 并且我将我的 war 文件 scp 到该机器 我该如何调试 war 我会使用什么命令 如何在我的终端中执行此操作 在远程计算机上使用调试参数运行 jboss Xdebug Xrunjdwp
  • 迁移到 Jboss 7.0 AS 后 Firefox 和 IE 中的 ViewExpiredException

    我们的 JSF 2 0 Richfaces 4 0 应用程序在 Jboss 6 0 上运行得非常好 我们正在尝试将其迁移到 Jboss 7 0 AS 对于我们点击页面上的任何链接 我们在 Firefox 和 IE 中遇到 ViewExpir
  • java.lang.ClassNotFoundException:com.google.gwt.user.client.rpc.RemoteService

    在 Tomcat 6 中部署 war 文件时出现以下异常 java lang ClassNotFoundException com google gwt user client rpc RemoteService 所以我尝试通过 webAp
  • 运行 GWT 的“MobileWebApp”示例时出现“HTTP 错误:500 无领域”

    我正在尝试运行 GWT 2 4 示例应用程序 MobileWebApp 当我尝试通过 Eclipse 在开发模式下运行应用程序时 出现 500 No Realm 错误 我知道这是一个身份验证问题 我不熟悉 Google App Engine
  • 使用 HornetQ (JBoss) 在 docker 容器上公开的 JMS 所需的端口

    我正在使用 Docker 将 JMS 服务器容器链接到另一个 JMS 客户端容器 但是当我在docker容器中运行服务器时 客户端无法正确连接到服务器 我在docker上暴露了端口443 JMS还有其他使用的端口吗 我可以成功创建目标 但不
  • 阐明 GWT RequestFactory 和 RequestContext 的工作原理

    我正在尝试将 RequestFactory 和编辑器框架实现到我的应用程序中 即使在研究了论坛 Google 开发者论坛和其他论坛之后 我仍然发现 关于将 RequestContext 与 RequestFactory 一起使用 我仍然不明
  • 如何使用 maven 在 JBoss AS 7 的 MANIFEST.MF 中生成模块依赖关系?

    在 JBoss AS 7 中 依赖于 AS 中包含的库的 Web 应用程序必须在 META INF MANIFEST MF 中声明这些依赖关系 如下所示 Dependencies
  • 在 Java EE 应用程序开发中使用 Docker

    我将添加300点作为赏金 我最近开始仔细研究 Docker 以及如何使用它来更快地让团队的新成员启动并运行开发环境 以及将新版本的软件交付到生产环境 我有一些关于如何以及在什么阶段将 Java EE 应用程序添加到容器的问题 据我所知 有多
  • gwt hibernate 程序中的异常

    我正在尝试制作一个简单的 GWT RPC Hibernate 程序 将用户添加到 MySQL 数据库 我正在使用 Eclipse EE 该应用程序已成功将用户添加到数据库 但在编译时引发异常 这是我的应用程序的例外情况和来源 例外 Exce
  • 测试 GWT 代码的最佳方法是什么[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • GWT 和 Web 服务 (wsdl)

    谁能告诉我一种从 GWT 客户端访问 WSDL Web 服务的方法 这可能吗 Thanks 智能网关 http www smartclient com product index jsp支持 WSDL 数据源 除此之外 您始终可以将 WSD
  • JBoss AS 5 中的共享库应该放在哪里?

    我是 Jboss 新手 但我有多个 Web 应用程序 每个应用程序都使用 spring hibernate 和其他开源库和 portlet 所以基本上现在每个 war 文件都包含这些 jar 文件 如何将这些 jar 移动到一个公共位置 以
  • Jackson:无法反序列化 START_OBJECT 令牌中的 Number 实例

    我的 GWT 服务返回LinkedList
  • 从多个 UiBinder 引用单个 ClientBundle 类会产生任何费用吗?

    我有一个 ClientBundle 其中包含整个应用程序所需的 css 资源 默认背景颜色 常见布局模式等 一位表示设计目标 http code google com webtoolkit doc latest DevGuideClient
  • JBoss 会话超时

    我正在尝试编写我的应用程序的一部分 以便它可以优雅地处理会话超时 但我似乎无法控制测试超时之前的持续时间 我正在使用 JBoss 5 1 并且正在修改我的 Web 描述符 web xml 的会话配置 以便会话在一分钟后超时 仅用于测试
  • GWT 身份验证和用户信息访问

    只是想知道我的以下身份验证方法是否正确 有没有什么陷阱或者遗漏的地方 非常欢迎建议和讨论 1 gt 用户提供用户名和密码 并通过RPC发送到服务器 与数据库中存储的哈希值进行比较 2 gt 假设用户名和密码准确 会话中会保存一个Auth T
  • EAR 和 WAR 类加载器

    我对 JBoss 类加载器很困惑 任何人都可以详细描述类加载器的工作原理吗 我只需要做一件事 如果 WAR 没有找到具有自己的类加载器的类 他会将搜索委托给其父类加载器 该父类加载器必须是 EAR 的 针对上述情况 我的申请需要进行哪些更改

随机推荐

  • 传单自定义控制位置:中心

    我们正在连接一个眼动仪来控制传单地图 平移 缩放等 我们希望有一个出现在地图中心的自定义控件 用于菜单功能 目前传单不支持位置 center 支持左上等 想法 我知道这是一个老话题 但无论如何 这是我的解决方法 添加一些CSS leafle
  • Azure 数据工厂和日志分析

    我想在 ADF 中对输入数据执行一些验证检查 并且任何验证失败都希望捕获到 Azure 日志分析中 有人可以指导我如何通过 Azure 数据工厂将自定义日志捕获到日志分析中吗 任何示例数据流 管道都会非常有帮助 谢谢 库马尔 如果我理解正确
  • 利用字符串向量中的余弦相似度来过滤掉相似的字符串

    我有一个字符串向量 向量的某些字符串 可能超过两个 在它们包含的单词方面彼此相似 我想过滤掉与向量的任何其他字符串具有超过 30 余弦相似度的字符串 在被比较的两个字符串中 我希望保留包含更多单词的字符串 也就是说 我只想要那些与原始向量的
  • 请建议针对表行跨度和列跨度问题的 XSLT 代码

  • 我应该使用 window.variable 还是 var?

    我们有很多设置 JS 代码 用于定义面板 按钮等 这些代码将在许多其他 JS 文件中使用 通常 我们会做这样的事情 grid js var myGrid 组合 js var myCombo 然后 在我们的应用程序代码中 我们 应用程序 js
  • 如何获取 Gradle 项目的所有配置列表?

    我正在尝试获取所有有效值的列表 configuration的旗帜依赖洞察 https docs gradle org current userguide tutorial gradle command line html sec depen
  • 如何在没有实体和 JPA 存储库的情况下在 Spring 中运行本机 SQL 查询?

    我正在尝试在 Spring 应用程序中运行一些本机 SQL 查询 我没有实体或JpaRepository班级 我知道这很奇怪 但这是一个微服务 只是收集两个计数查询并将其发送到 Kafka 相信我 我所需要的只是查询中的这两个整数 我运行这
  • 使用 JNI 在 C++ 中调用方法?

    所以我一直在研究 JNI 调用 以便我可以与一些预先编写的 C 程序进行交互 我不了解任何 C 但我正在尝试学习一些基础知识 我刚刚尝试对 JNI 方法之外的方法进行简单调用 但总是收到以下错误 错误 c3861 myMethod 找不到标
  • CORS / xhr.getRequestHeaders

    问候 我正在尝试使用 CORS http www w3 org TR 2009 WD cors 20090317 access control allow methods header http www w3 org TR 2009 WD
  • Java regex - 从匹配文本中获取行号

    它基于我的上一个问题 https stackoverflow com questions 34758621 java get text from jtextarea by number line 对于我的情况 我想从正则表达式模式中获取行数
  • 为什么不重用“ASP.NET_SessionId”?

    我是 ASP NET 新手 我不明白为什么不重用 ASP NET SessionId 据我了解 每次用户从服务器请求页面时 IIS 都会为他创建一个 ASP NET SessionId 并将其放入用户浏览器的 cookie 中 我在这里读到
  • C# 4.0 编译器崩溃

    此代码示例 http pastie org 2757961无法编译 有什么解决办法吗 using System using System Collections Generic using System Linq using System
  • 如何对mysql数据库中的电子邮件进行加密但仍然能够查询它们?

    我想使用加密将用户的电子邮件地址存储在 MySQL 数据库中 以确保如果数据库遭到破坏 这些地址不会被公开 我相信如果我用 mysql 加密它们AES ENCRYPT https dev mysql com doc refman 5 1 e
  • 查看当前页面时预加载第二页

    假设我的网站有 5 页内容 当访问者查看第一页时 是否可以预加载接下来的两页 这样 当他们单击第二页或第三页的链接时 它就会立即出现 当然 你可以有一些像这样的隐形容器 HTML div a href page2 html Go secon
  • 使用 awk 解析 csv 并忽略字段内的逗号

    我有一个 csv 文件 其中每一行定义给定建筑物中的一个房间 除了房间之外 每行都有一个地板区域 我想要提取的是所有建筑物的所有楼层 我的文件看起来像这样 u floor u room name 0 00BDF AIRPORT TEST 0
  • Typedef 声明的形式为“int typedef my_int;”

    声明my int作为类型别名int我们可以写 typedef int my int 1 奇怪的是 以下似乎也定义了int alias int typedef my int 2 我以前从未见过这样的语法 为什么它有效 我读后的推理C 参考 h
  • 自定义类型文件到 Angular 6

    我正在尝试以角度方式广告一些自定义类型定义文件 但面临一些错误 在应用程序文件夹中 我有外部文件夹 其中有 external d ts 文件和下面的代码 declare function format input string args s
  • 如何包含目录中保存的所有CSS?

    html中是否可以同时包含多个css 或者更准确地说 是否可以一次性包含放置在一个目录中的所有 css 就像目前我们所做的是 我需要类似的东西 是否可以 或者有什么替代方案吗 您可以创建一个主样式表 将其包含在每个页面中 并在该 css 文
  • 在 Laravel 4 中重定向回时保留表单值

    我试图在 Laravel 4 上 Redirect back 时保留表单的值 但我找不到方法来做到这一点 这是我的表格 Form open array route gt generate files gt true Form radio m
  • 将 GWT-RPC-Applicaton 部署到 JBoss AS 7.1.1 时出现 ClassNotFoundException

    我有一个 Maven 基础 GWT 应用程序 当我通过 Maven 编译 构建并部署它到 JBoss AS 7 1 1 时 我的 GWT RPC Service 出现了 ClassNotFoundException 在我包含之前 我部署了并