我正在通过使用以下代码获取绝对路径将图像上传到 jboss 服务器
getServletContext().getRealPath("");
上传的图像被移动到绝对路径,我可以使用 http://test.com:8080/image.jpg 访问图像
我的问题是图像正在上传到 jboss 服务器的 tmp 目录,所以我在下一次部署中丢失了上传的图像。 我尝试将图像上传到各种路径以使其工作 \jboss-5.0.1.GA\服务器\默认\部署 这里也是\jboss-5.0.1.GA\server\default\work\jboss.web\localhost 但是失败了,我无法使用 http://test.com:8080/image.jpg 访问图像
请帮我解决这个问题......
最佳答案
您可以添加新上下文以指定访问外部文件夹的路径。
Jboss 4 及更早版本的步骤:
- 打开你的文件
/YOURINSTANCE_JBOSS/deploy/jboss-web.deployer/server.xml
. 定义一个新的
Context
在标签<Host name=”localhost” ...>
例子:
<Host name=”localhost” ...> <Context path=”/myfolder” docBase=”/home/username/my_images” reloadable=”true”></Context>
/myfolder 是您用来访问文件的路径,/home/username/my_images 是您要上传的文件夹你的照片。
重启 JBoss
现在您将能够使用下一个路径访问您的文件:
http://yourserver:yourport/myfolder/filename
Jboss 5 的步骤:
创建一个名为
context.xml
的新文件进入你的WEB-INF
包含下一个内容的文件夹:<?xml version="1.0" encoding="UTF-8"?> <Context allowLinking="true" cookies="true" crossContext="true" override="true"> <Resources allowLinking="true" className="YOUR_PACKAGE.MyResources" homeDir="/home/username/my_images" /> </Context>
className 是将访问资源的 java 类,homeDir 您的外部目录。
根据这个link创建一个新类来访问文件中定义的资源
context.xml
例子:
public class MyResources extends FileDirContext { }
现在您将能够使用下一个功能访问您的文件:
request.getServletContext().getResourceAsStream(uri);
Jboss 5 及更早版本的步骤:
创建一个名为
context.xml
的新文件使用以下内容进入您的 WEB-INF 文件夹:<?xml version="1.0" encoding="UTF-8"?> <Context allowLinking="true" cookies="true" crossContext="true" override="true"> <Resources allowLinking="true" homeDir="/home/username/my_images" /> </Context>
homeDir 是您的外部目录。
创建符号链接(symbolic link):
YourDeployedProject.war/myfolder
链接到/home/username/my_images
window :
mklink /D C:\YOUR_JBOSS_SERVER\server\default\deploy\YourDeployedProject.war\myfolder C:\users\YOURUSER\my_images
Linux:
YourDeployedProject.war# ln -s /home/username/my_images myfolder
现在您将能够使用下一个路径访问您的文件:
http://localhost:8080/DeployedProject/myfolder/filename
Jboss 7 的步骤:
JBoss 7 不允许以前 JBoss 版本的任何方法,因此最简单的解决方案是实现一个 Servlet 来访问您的文件,如下一个 link 所示。 .
关于java - Jboss图片上传和http访问显示图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17359038/