Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将GWT RPC应用程序部署到JBoss AS 7.1.1时发生ClassNotFoundException_Gwt_Jboss_Gwt Rpc - Fatal编程技术网

将GWT RPC应用程序部署到JBoss AS 7.1.1时发生ClassNotFoundException

将GWT RPC应用程序部署到JBoss AS 7.1.1时发生ClassNotFoundException,gwt,jboss,gwt-rpc,Gwt,Jboss,Gwt Rpc,我有一个基于maven的GWT应用程序 当我在Maven上编译、构建并部署到JBoss 7.1.1时,我得到了一个GWT RPC服务的ClassNotFoundException。在我加入之前,我已经部署并可以显示GWT小部件,所以GWT JAR应该在那里 我的Maven依赖项如下所示: <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-dev</artifa

我有一个基于maven的GWT应用程序

当我在Maven上编译、构建并部署到JBoss 7.1.1时,我得到了一个GWT RPC服务的ClassNotFoundException。在我加入之前,我已经部署并可以显示GWT小部件,所以GWT JAR应该在那里

我的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>
-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();
}
有人知道怎么回事吗?

谢谢你的意见。 我现在找出了问题所在

这是一个愚蠢的错误。在maven配置中,我设置了客户端包中的所有类都不应该包含在包中,因为它们都编译为JS。这包括我的服务接口。。。 我将其移动到一个新的共享包中,并将其包含在gwt.xml中

还将gwt user和gwt dev更改为提供的maven范围,将gwt servlet更改为运行时


在这种配置下,它可以工作:-)

这不会解决您的问题,但是应该为gwt用户和gwt开发人员提供compile,因为它们在WEB-ING库中不是必需的。GWT最佳实践。@sachinshekharlow,“
编译
不是您所认为的”——)@eagle:与您当前的问题无关:GWT2.5.0中存在影响GWT-RPC的打包缺陷;我们很快就要发布2.5.1了。我想我理解运行时将它们放入Web INF/lib。我原以为只有提供了条件才能避免这种情况。
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