Jsp jboss/wildfly-在web容器外提供xml文件

Jsp jboss/wildfly-在web容器外提供xml文件,jsp,jboss,wildfly,Jsp,Jboss,Wildfly,前提: 外部cron作业定期更新我的服务器本地文件系统上的一些xml文件 /my/path/foo.xml /my/path/bar.xml 我需要通过http提供这些文件。因为我在同一台服务器上有一个wildfly 11实例, 我选择构建一个jsp应用程序,使用这样的URL为这些文件提供服务 允许我选择服务哪个文件的查询字符串(在示例foo.xml中) 请注意:我是jsp/jboss的新手,我提出了这个简单的poc index.jsp 这似乎有效。但我认为这有点笨拙和低效,因

前提:

  • 外部cron作业定期更新我的服务器本地文件系统上的一些xml文件
    • /my/path/foo.xml
    • /my/path/bar.xml
我需要通过http提供这些文件。因为我在同一台服务器上有一个wildfly 11实例, 我选择构建一个jsp应用程序,使用这样的URL为这些文件提供服务

允许我选择服务哪个文件的查询字符串(在示例foo.xml中)

请注意:我是jsp/jboss的新手,我提出了这个简单的poc

index.jsp

这似乎有效。但我认为这有点笨拙和低效,因为我必须逐行读/写文件


有没有更好的方法来为那些活动的xml文件提供服务,并在web容器之外更新这些文件?

虽然我可能会使用servlet,但您所做的是非常合理的。请看一些较短的方法。
<?xml version="1.0" encoding="UTF-8"?>
<%@ page language="java" contentType="text/xml" import="java.io.*" %>


<%

String name = request.getParameter("name");
if (name==null)
    return;

String fileName = "/my/path/"+ name +".xml";

File f = new File(fileName);

if (!f.canRead())
    return;

FileInputStream ins = new FileInputStream(f);
try
{
if(ins == null)
{
response.setStatus(response.SC_NOT_FOUND);
}
else
{
BufferedReader br = new BufferedReader((new InputStreamReader(ins)));
String data;
while((data= br.readLine())!= null)
{
out.println(data);
}
} 
}
catch(IOException e)
{
out.println(e.getMessage());
}
%>