我正在尝试在 jboss 中部署一个 GWT 项目,但我遇到了这个错误
> 18:59:51,074 ERROR
> [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error
> installing to PreReal:
> name=vfs:///home/chun/Documents/dev/jboss-6.0.0/server/default/deploy/t1.war
> state=PostClassLoader mode=Manual requiredState=PreReal:
> org.jboss.deployers.spi.DeploymentException:
> java.lang.ClassNotFoundException: t1.server.GreetingServiceImpl from
> BaseClassLoader@47bebb{vfs:///home/chun/Documents/dev/jboss-6.0.0/server/default/deploy/t1.war}
> at
> org.jboss.resteasy.integration.deployers.ResteasyScannerDeployer.checkDeclaredApplicationClassAsServlet(ResteasyScannerDeployer.java:257)
> [:6.0.0.Final] at
> org.jboss.resteasy.integration.deployers.ResteasyScannerDeployer.scan(ResteasyScannerDeployer.java:108)
> [:6.0.0.Final] at
> org.jboss.resteasy.integration.deployers.ResteasyScannerDeployer.internalDeploy(ResteasyScannerDeployer.java:64)
> [:6.0.0.Final] at
> org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491)
> [:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654)
> [jboss-dependency.jar:2.2.0.GA] at
> org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679)
> [:2.2.0.GA] at
> org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106)
> [:6.0.0.Final] at
> org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.deploy(HDScanner.java:240)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.complete(HDScanner.java:192)
> [:0.2.2] at
> org.jboss.profileservice.management.TwoPCActionWrapper.doComplete(TwoPCActionWrapper.java:57)
> [:0.2.2] at
> org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.complete(AbstractTwoPhaseModificationAction.java:74)
> [:0.2.2] at
> org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:95)
> [:0.2.2] at
> org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:135)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner.scan(HDScanner.java:146)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner.run(HDScanner.java:90)
> [:0.2.2] at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> [:1.6.0_30] at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> [:1.6.0_30] at
> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> [:1.6.0_30] at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> [:1.6.0_30] at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
> [:1.6.0_30] at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
> [:1.6.0_30] at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> [:1.6.0_30] at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> [:1.6.0_30] at java.lang.Thread.run(Thread.java:662) [:1.6.0_30]
> Caused by: java.lang.ClassNotFoundException:
> t1.server.GreetingServiceImpl from
> BaseClassLoader@47bebb{vfs:///home/chun/Documents/dev/jboss-6.0.0/server/default/deploy/t1.war}
> at
> org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480)
> [jboss-classloader.jar:2.2.0.GA] at
> java.lang.ClassLoader.loadClass(ClassLoader.java:247) [:1.6.0_30] at
> org.jboss.resteasy.integration.deployers.ResteasyScannerDeployer.checkDeclaredApplicationClassAsServlet(ResteasyScannerDeployer.java:253)
> [:6.0.0.Final] ... 41 more 18:59:51,117 WARN
> [org.jboss.profileservice.deployment.hotdeploy.HDScanner] Scan failed:
> org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary
> of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
> *** DEPLOYMENTS IN ERROR: Name -> Error vfs:///home/chun/Documents/dev/jboss-6.0.0/server/default/deploy/t1.war
> -> org.jboss.deployers.spi.DeploymentException: java.lang.ClassNotFoundException: t1.server.GreetingServiceImpl from
> BaseClassLoader@47bebb{vfs:///home/chun/Documents/dev/jboss-6.0.0/server/default/deploy/t1.war}
> DEPLOYMENTS IN ERROR: Deployment
> "vfs:///home/chun/Documents/dev/jboss-6.0.0/server/default/deploy/t1.war"
> is in error due to the following reason(s):
> java.lang.ClassNotFoundException: t1.server.GreetingServiceImpl from
> BaseClassLoader@47bebb{vfs:///home/chun/Documents/dev/jboss-6.0.0/server/default/deploy/t1.war}
> at
> org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1370)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1316)
> [:2.2.0.GA] at
> org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:968)
> [:2.2.0.GA] at
> org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.checkComplete(MainDeployerPlugin.java:82)
> [:6.0.0.Final] at
> org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.checkComplete(ProfileControllerContext.java:138)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.deploy(HDScanner.java:246)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.complete(HDScanner.java:192)
> [:0.2.2] at
> org.jboss.profileservice.management.TwoPCActionWrapper.doComplete(TwoPCActionWrapper.java:57)
> [:0.2.2] at
> org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.complete(AbstractTwoPhaseModificationAction.java:74)
> [:0.2.2] at
> org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:95)
> [:0.2.2] at
> org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150)
> [:0.2.2] at
> org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:135)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner.scan(HDScanner.java:146)
> [:0.2.2] at
> org.jboss.profileservice.deployment.hotdeploy.HDScanner.run(HDScanner.java:90)
> [:0.2.2] at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> [:1.6.0_30] at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
> [:1.6.0_30] at
> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
> [:1.6.0_30] at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
> [:1.6.0_30] at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
> [:1.6.0_30] at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
> [:1.6.0_30] at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> [:1.6.0_30] at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> [:1.6.0_30] at java.lang.Thread.run(Thread.java:662) [:1.6.0_30]
这是我的 web.xml 文件
<web-app>
<!-- Servlets -->
<servlet>
<servlet-name>greetServlet</servlet-name>
<servlet-class>t1.server.GreetingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>greetServlet</servlet-name>
<url-pattern>/t1/greet</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>T1.html</welcome-file>
</welcome-file-list>
</web-app>
这是我的 servlet 代码:
package t1.server;
import t1.client.GreetingService;
import t1.shared.FieldVerifier;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements
GreetingService {
public String greetServer(String input) throws IllegalArgumentException {
// Verify that the input is valid.
if (!FieldVerifier.isValidName(input)) {
// If the input is not valid, throw an IllegalArgumentException back to
// the client.
throw new IllegalArgumentException(
"Name must be at least 4 characters long");
}
String serverInfo = getServletContext().getServerInfo();
String userAgent = getThreadLocalRequest().getHeader("User-Agent");
// Escape data from the client to avoid cross-site script vulnerabilities.
input = escapeHtml(input);
userAgent = escapeHtml(userAgent);
return "Hello, " + input + "!<br><br>I am running " + serverInfo
+ ".<br><br>It looks like you are using:<br>" + userAgent;
}
/**
* Escape an html string. Escaping data received from the client helps to
* prevent cross-site script vulnerabilities.
*
* @param html the html string to escape
* @return the escaped string
*/
private String escapeHtml(String html) {
if (html == null) {
return null;
}
return html.replaceAll("&", "&").replaceAll("<", "<")
.replaceAll(">", ">");
}
}
我试图在没有成功的情况下解决这个问题。有人可以帮助我吗?请原谅我的英语水平!!!
这是文件夹的结构:
-----t1
| `-----gwt
| | `-----clean
| | | `-----images
`-----WEB-INF
| `-----classes
| | `-----t1
| | | `-----client
| | | `-----server
| | | `-----shared
| `-----deploy
| | `-----t1
| | | `-----rpcPolicyManifest
| | | | `-----manifests
| `-----lib