Java Servlet-2.3无法在Websphere Liberty Profile 8.5.5.6中运行

时间:2017-05-22 19:47:45

标签: java servlets web-applications websphere-liberty

我们在IBM Websphere Liberty配置文件服务器中运行Java Web应用程序。我们最近开发了一个Java Servlet,它负责使用Java库生成JFreeCharts。

web.xml中的代码

<servlet>
    <servlet-name>GraphicServlet</servlet-name>
    <servlet-class>com.test.GraphicServlet</servlet-class>
    <load-on-startup>10</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>GraphicServlet</servlet-name>
    <url-pattern>*.img</url-pattern>
</servlet-mapping>

index.html文件中的代码

<img src="summary/chart.img" height="100" width="100" />

GraphicsServlet.java中的代码

此Servlet实现了doGet方法,该方法中的业务逻辑使用JFreeCharts生成图表图像文件(.png),该图像以流的形式作为响应返回。

申请流程:

访问应用程序时,默认显示index.html文件,此页面包含需要显示JFreeChart生成的图表的部分。

场景说明:

访问应用程序时,不会显示图像文件。使用浏览器的开发人员工具,我发现当请求发送到 *。img Url时会打印404错误。接下来,我试图找出Servlet是否真的部署到服务器上或者遗漏在 .war 文件中,我检查了websphere中的部署文件夹,发现部署了Servlet。接下来,我尝试检查Servlet是否已启动并正在运行。在新的浏览器中,我发送了一个测试请求,例如 http://localhost:9080/myapp/summary/chart.img ,它将404错误返回到屏幕上。

我想知道为什么servlet没有起床。所以,我在GraphicsServlet中实现了HttpServlet的init()方法并编写了一个print语句。当应用程序完成加载时,我没有得到那个打印。最后,我试着评论出doGet方法的每一行,即使我收到了 404屏幕上出现错误。

问题描述:我想知道为什么GraphicsServlet没有起床。如果有任何技术可以了解GraphicServlet失败的原因,请告诉我。

更新1: 我尝试在web.xml中删除配置,并使用@WebServlet注释注释GraphicServlet。现在,我能够看到那些打印语句,现在确认使用注释时GraphicServlet已启动并运行。所以,我开始查看web.xml DOCTYPE标签。 Web应用程序DTD的版本非常陈旧。它是2.3版本,我们安装的Java版本是1.8。这里的任何人都可以告诉我WebApp-2.3的问题吗?

更新2: 我从GraphicServlet中删除了@WebServlet注释,然后我再次尝试使用xml配置,并在web.xml文件中将Web-app版本从2.3更改为3.1(也是3.0)。 GraphicServlet仍未启动并运行。

更新3: 我注意到java-7.0功能正在Websphere server.xml文件中使用。

感谢您的耐心等待。

1 个答案:

答案 0 :(得分:0)

也许您应该将web.xml中的servlet映射更改为:

/总结/ *。IMG

相关问题