我正在尝试访问WEB-INF文件夹中的内容,并将该文件使用到我的JAXB解组函数中,但我尝试了所有方法,但没有成功。首先,我使用jersey和grizzly服务器在本地测试它,但现在我想将它移动到tomcat服务器上,并使用.war文件部署它,该文件具有WEB-INF文件夹和index.html。
我有3个包(资源,模型和主要包)。
在其中一个(模型)中,我有一个类,我正在使用这个解组函数对WEB-INF文件夹中的一个文件进行解组,这个类由资源中的一个类调用。
我如何访问WEB-INF中的文件?
Catalogo类(它是映射到url的资源)。
@Path("catalogo")
public class CatalogoResource {
@Context ServletContext context;
@Path("{id}/{ano}")
@GET
@Produces(MediaType.APPLICATION_XML)
public Catalogo retornaCatalogo(@PathParam("id") int id, @PathParam("ano") int ano) throws URISyntaxException, MalformedURLException{
//buscar no arquivo, dar unmarshall pra ca.
Catalogo cat = new CatalogoDAO().open(ano, id);
//pensar em como retornar o xml;
return cat;
}
}
在catalogo内部使用的类CatalogoDAO位于models包上。
public class CatalogoDAO{
private Catalogo catalog = new Catalogo();
ServletContext context;
public Catalogo open(int ano, int curso) throws URISyntaxException {
try {
InputStream resourceAsStream = context.getResourceAsStream("/WEB-INF/catalogos/2012_36.xml"); //line of the null pointer.
JAXBContext jaxbContext = JAXBContext.newInstance(Catalogo.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
catalog = (Catalogo) jaxbUnmarshaller.unmarshal(resourceAsStream);
} catch (JAXBException e) {
e.printStackTrace();
}
return catalog;
}
}
但还是没有成功。
说明服务器遇到内部错误,导致它无法完成此请求。
例外情况
javax.servlet.ServletException:java.lang.nullpointerException org.glassfish.jersey.servlet.webcomponent.service(webcomponent.java:392)org.glassfish.jersey.servlet.servletcontainer.service(servletcontainer.java:382)org.glassfish.jerse.servlet.servletcontainer.service(servletcontainer.java:345)org.glassfish.jerse.servlet.servletcontainer.service(
根本原因
好的。堆栈跟踪显示:
java.lang.NullPointerException
br.unicamp.ft.courseviewer.modelo.CatalogoDAO.open(CatalogoDAO.java:22)
所以,在第22行,这是
InputStream resourceAsStream = context.getResourceAsStream("/WEB-INF/catalogos/2012_36.xml");
您将得到一个NullPointerException。
您已经在CatalogoResource类中执行了以下操作:
@Context ServletContext context;
这告诉JAX-RS在实例化类之后,它应该注入ServletContext。因此,只需将此上下文传递给您的DAO构造函数或方法:
public Catalogo open(ServletContext context, int ano, int curso) throws URISyntaxException {
try {
InputStream resourceAsStream = context.getResourceAsStream("/WEB-INF/catalogos/2012_36.xml");
// ...
我刚刚开始使用JSP,遇到了一个问题。 据我所知,WEB-INF下的JSP页面可以通过浏览器在localhost中使用URL进行访问: 但是,如果我在WEB-INF文件夹(即'MyFolder')中创建另一个子文件夹,并尝试通过URL访问相同的JSP页面: 它给出了一个错误404。JSP文件导航系统与HTML文件导航系统有区别吗? 编辑:我正在使用servlet来显示我的JSP页面: EDIT2:
使用Freemarker模板有两种不同的要求。一个是打印网页的某些部分,另一个是生成定制的HTML文件。我已将所有FTL文件放在路径WEB-INF/FTL/下,WEB应用程序从上述位置提取正确的FTL文件并打印网页。当我不得不生成HTML文件时,Freemarker无法找到相应的FTL文件。 我试图将特定的FTL文件保存在resources/FTL/下,但它仍然无法获取该文件。我在src下创建了一
问题内容: 我想将我的JSF 2.0 xhtml文件放在WEB-INF \ jsf下。那我该如何访问它们?我知道WEB- INF中的任何内容都不会暴露给外部,因此我需要一个控制器将我重定向到相应的JSP,对吗?(这也是模型2模式iirc)。 我可以使用web.xml / faces- config.xml中的参数来实现吗?我认为FacesServlet是我的webapp的控制器,因此它应该达到这个
如何从Windows文件资源管理器访问Docker containers文件夹和文件?
问题内容: 我对JQuery和Ajax有点陌生,所以如果这是新手的问题,我深表歉意。 我正在尝试使用本地文件中的ajax来访问Web(例如,获取文本文件)。 我没有使用IIS或任何其他来自硬盘驱动器的简单文件(我需要它保持这种状态)。 在IE8和Chrome(版本11.0.696.60)上都进行了检查。 这是一些JavaScript来说明: 此代码试图从Web加载文本文件-IE和chrome上的操
问题内容: 我无法从存储在WEB- INF中的JSP访问某些图像和CSS文件。我的servlet调用了JSP,并且全部加载正常,但是页面无法找到图像和CSS文件。我对这种事情很陌生,希望能提供帮助。我知道过去对此存在一些疑问,我已经尝试过这些建议提出的建议,但是我似乎无法回避它。这是JSP的内容(我尝试了一堆不同的方法): 这是我的目录结构: http://gyazo.com/0a7aea0a44