【问题标题】:Build.xml gives error while creating a war file using ant buildBuild.xml 在使用 ant build 创建战争文件时出错
【发布时间】:2015-02-23 07:18:14
【问题描述】:

我为 Java Liberty 下载了 bluemix starter 应用程序包并创建了一个 jsp 页面以使用 javamail api,我创建了一个向 jsp 页面请求参数的 servlet,并创建了另一个使用 SMTP 传输邮件的类,我部署了这个在 bluemix 上。当我通过互联网访问它时,servlet 被调用,但它没有响应任何东西可能是它没有请求我的类传输消息,所以我该如何解决这个问题

我使用 web.xml 中的 contextparam 设置 smtp 的属性

【问题讨论】:

  • 你能把 servlet 部署到 tomcat 或任何其他服务器吗?因为你得到编译器错误
  • 是的,它会在 tomcat 上正常运行,但是当我为 bluemix 创建 war 文件时会出错
  • 看起来你还没有在编译类路径中包含 servlet jar...
  • 是否需要在我托管在 ibm bluemix 上的应用中添加 servlet.jar
  • 实际上 tomcat 不会给出任何错误,它会在 tomcat 上正常运行。但是在使用 build.xml 为 ibm bluemix 创建war 文件时会出现错误

标签: java servlets ibm-cloud


【解决方案1】:

查看错误{请求的资源不可用 /emailsendingservlet.java} 似乎问题在于斜线,即尝试使用 emailsendingservlet.java 而不是 /emailsendingservlet.java。

当您在 URL 模式中添加斜线时,容器将查找部署名称为“emailsendingservlet”的 Web 应用程序。由于该应用程序不存在,您将收到 404 错误。

以下是参考链接:

tomcat requested resource () is not available

【讨论】:

  • 我删除了那个斜线,但它不起作用。@WebServlet("EmailSendingServlet") 是我的 servlet 中的 url 模式,我在我的 jsp 页面中提供了 action="EmailSendingServlet"
  • 当我创建一个新的类路径到新的 Bin 文件夹并通过替换 build.xml 中的 Bin 来更改 bin 然后它会创建一个 war 文件但是当我去访问它时会给出错误请求资源不可用/emailsendingservlet.java 实际上我猜我的类路径有问题并且我的类文件没有存储在 bin 文件夹中请帮助我
  • 实际上问题可能出在 bin 实际上我的 .class 文件没有存储在 bin 中实际上它存储在 build/classes 中的问题是什么
【解决方案2】:

问题在于 build.xml。您需要检查 build.xml 在其类路径中定义的路径元素中是否有指向 com.ibm.ws.javaee.servlet.[version].jar 的指针。

<path id="classpathDir">
<pathelement location="bin"/>
<pathelement location="lib/com.ibm.ws.javaee.servlet.3.0_1.0.1.jar"/>
</path>

另外,请检查 jar 位置是否提到错误或丢失。

【讨论】:

  • 我可以覆盖您使用此代码提供的代码吗
  • 请帮我看看有什么问题
  • [javac] 警告:[options] bootstrap class path not set with -source 1.5 [javac] 1 warning 这个错误是什么意思
  • 现在我创建了一个战争文件,但是当我从 bluemix 访问它时,它会给出错误,例如请求的资源不可用 /emailsendingservlet.java
  • 请帮助我,该项目在 tomact 上仍然可以正常工作,但在 ibm bluemix 上无法正常工作
猜你喜欢
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2015-07-31
  • 2021-02-02
  • 2013-02-03
  • 1970-01-01
  • 2010-11-03
相关资源
最近更新 更多