jakarta-ee - 我需要帮助弄清楚为什么Ant会给我这个错误消息(设置Java Pet St

我不知道ContainerBaCommand的来源,但这是我的错误:

我首先必须将javax.jar(具有servlet)类添加到C:\ JEE6SDKglassfish3 \ glassfish \ lib \ endorsed目录中,这给了我一个新的错误,在这里:

Buildfile: C:\petstore~svn\trunk\ws\apps\petstore\build.xml

check:

tools:

-pre-deploy:

deploy:
     [exec] Deprecated syntax, instead use:
     [exec] asadmin --user admin --passwordfile c:/JEE6SDKglassfish3/glassfish/samples/bp-project/passwordfile --host localhost --port 4848 deploy [options] ...

     [exec] remote failure: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBaCommand deploy failed.
     [exec] se.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener. Please see server.log for more details.

BUILD FAILED
C:\petstore~svn\trunk\ws\bp-project\app-server-ant.xml:382: exec returned: 1

Total time: 47 seconds

设置文件夹中的所有文件:http://tinyurl.com/3gbb6o4

编辑:非常感谢马克!

最佳答案

我认为“ ContainerBaCommand ”实际上是 ContainerBase.addChild (these guys had a similar problem)。我认为有时Java标准输出和标准错误会在控制台上混合在一起。

我假设您正在使用类似app-server-ant.xml的东西。您的Ant错误似乎表明“ asadmin ”现在用于部署应用程序的语法已更改。因此,我认为您需要从当前任务重新编写部署任务:

<exec executable="${asadmin}" failonerror="${failonerror}">
  <arg line=" deploy "/>
  <arg line=" --user ${javaee.server.username}" />
  <arg line=" --passwordfile ${javaee.server.passwordfile}" />
  <arg line=" --host ${javaee.adminserver.name}" />
  <arg line=" --port ${javaee.adminserver.port}" />
  <arg line=" --name ${module.name}"/>
  <arg line=" --force=true "/>
  <arg line=" --upload=true "/>
  <arg line=" --precompilejsp "/>
  <arg line=" --dbvendorname ${db.vendorname}"/>
  <arg line="${app.module}" />
</exec>

至:
<exec executable="${asadmin}" failonerror="${failonerror}">
  <arg line=" --user ${javaee.server.username}" />
  <arg line=" --passwordfile ${javaee.server.passwordfile}" />
  <arg line=" --host ${javaee.adminserver.name}" />
  <arg line=" --port ${javaee.adminserver.port}" />
  <arg line=" deploy "/>
  <arg line=" --force=true "/>
  <arg line=" --precompilejsp "/>
  <arg line=" --name ${module.name}"/>
  <arg line=" --upload=true "/>
  <arg line=" --dbvendorname ${db.vendorname}"/>
  <arg line="${app.module}" />
</exec>

我很惊讶您需要将javax.jar(具有servlet类)复制到认可的lib中。 Servlet(和ServletContextListener)对于应用程序服务器是非常重要的类。我希望它们已经存在于Glassfish类路径中(在Glassfish 3.1中,它们位于〜glassfish/modules/javax.servlet.jar中)。我怀疑将您的javax.jar复制到“ lib/endorsed ”中引起的问题超出了解决的范围。

我希望这有帮助。

关于jakarta-ee - 我需要帮助弄清楚为什么Ant会给我这个错误消息(设置Java Pet Store)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355416/

相关文章:

python - python程序显示编译错误

c# - C#—在Convert.ToInt32(...)之后,循环将不接受非数字输入

python - 您如何处理使用Scrapable FormRequest变灰的多个下拉表单

sql-server - SQL Server中的编译错误和运行时错误之间的区别?

iphone - 线程1程序收到信号SIGABRT

c# - 编译应用程序时,它会删除引用

visual-c++ - C++语法错误: missing ';' before 'constant

objective-c - Objective-C ISO C++禁止声明无类型的X

syntax - D中的基本运算符重载(第2部分)

android - 构建Android源时编译错误