打印pdf文件 在tomcat下正常 部署到jboss下就出问题?

juanzi11 2010-11-05 10:03:33
/**
* 转换PDF功能
* @throws Exception
* @throws DocumentException
*/
@SuppressWarnings("unchecked")
public void print() throws Exception,DocumentException {

// 获取packageId 并保存至session
String packageId = Struts2Util.getRequest().getParameter("packageId");
Struts2Util.getSession().setAttribute("packageId", packageId);

// covert pdf
HttpURLConnection con = null;
URL url = null;
try
{
String sessionid = Struts2Util.getRequest().getSession().getId();
url = new URL("http://127.0.0.1:8080/scm/shipments!viewPackingSlip.action");
//url = new URL("http://10.168.2.182:8080/scm/shipments!viewPackingSlip.action");
con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Cookie","JSESSIONID="+sessionid);

con.connect();
int size = 0;
byte[] buf = new byte[1024];

BufferedInputStream bis = new BufferedInputStream(con.getInputStream());
StringBuffer sb = new StringBuffer();
while ((size = bis.read(buf)) != -1)
{
sb.append(new String(buf, 0, size));

}

System.out.println(sb.toString());
bis.close();
con.disconnect();

HttpServletResponse response = Struts2Util.getResponse();
response.setContentType("APPLICATION/DOWNLOAD");
response.setHeader("Content-Disposition", "attachment; filename="+ "PackingSlip.pdf");// PackingSlip是文件名
java.io.OutputStream os = response.getOutputStream();
List headerFooterList = new ArrayList();
Map properties = new HashMap();
CYaHPConverter converter = new CYaHPConverter();
String ss = "http://127.0.0.1:8080/scm/stylesheet/";
//String ss = "http://10.168.2.182:8080/scm/stylesheet/";
converter.convertToPdf(sb.toString(), IHtmlToPdfTransformer.A4P,headerFooterList, ss, os, properties);
System.out.print("Converter Success!");
os.flush();
os.close();
response.flushBuffer();

}catch (IOException e)
{ }

}
...全文
195 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Epiphone 2010-11-05
  • 打赏
  • 举报
回复
出什么问题了?
juanzi11 2010-11-05
  • 打赏
  • 举报
回复
---本地 jboss
Firefox 无法在 http://127.0.0.1:8080/scm/shipments!print.action?packageId=3277 找到该文件。

--服务器 jboss
Firefox 无法在 http://10.168.2.182:8080/scm/shipments!print.action?packageId=3277 找到该文件。


提示找不到print.action,可是在jboss的运行后台却执行了print()方法中的内容
很是怪异

难道tomcat和jboss的运行机制不同,这个程序再tomcat下跑的是正常的,可以正常下载和在线打开pdf
juanzi11 2010-11-05
  • 打赏
  • 举报
回复
服务器是
linux平台的分配的一个虚拟机地址10.168.2.182

我们一直都是采用run.bat -b 0.0.0.0 这种方式启动的
sxww321 2010-11-05
  • 打赏
  • 举报
回复
连接拒绝

试试这个:

在 jboss4.2及以后的版本中,默认情况下jboss只接收来自localhost或127.0.0.1的请求,也就是只接收本地的访问。为了使 jboss接收来自其他地址的请求,在启动jboss时需要使用-b命令行参数进行设置。如下面的启动命令所示:

run.bat -b 200.200.200.123
run.bat -b 0.0.0.0

   上面的第一行命令表示jboss可以接收来自200.200.200.123的请求。第二条命令表示jboss可以接收来自任意地址的请求。如果不设置-b参数,以非本机方式访问EJB时,JBoss会抛出上面异常。
juanzi11 2010-11-05
  • 打赏
  • 举报
回复
呵呵 不好意思 一直在忙 都忘记发了
各位继续研究
juanzi11 2010-11-05
  • 打赏
  • 举报
回复
错误信息:



17:14:25,093 ERROR [STDERR] java.net.ConnectException: Connection refused: conne
ct
17:14:25,093 ERROR [STDERR] at java.net.PlainSocketImpl.socketConnect(Native
Method)
17:14:25,093 ERROR [STDERR] at java.net.PlainSocketImpl.doConnect(PlainSocke
tImpl.java:333)
17:14:25,093 ERROR [STDERR] at java.net.PlainSocketImpl.connectToAddress(Pla
inSocketImpl.java:195)
17:14:25,093 ERROR [STDERR] at java.net.PlainSocketImpl.connect(PlainSocketI
mpl.java:182)
17:14:25,093 ERROR [STDERR] at java.net.Socket.connect(Socket.java:519)
17:14:25,093 ERROR [STDERR] at java.net.Socket.connect(Socket.java:469)
17:14:25,093 ERROR [STDERR] at sun.net.NetworkClient.doConnect(NetworkClient
.java:157)
17:14:25,093 ERROR [STDERR] at sun.net.www.http.HttpClient.openServer(HttpCl
ient.java:394)
17:14:25,093 ERROR [STDERR] at sun.net.www.http.HttpClient.openServer(HttpCl
ient.java:529)
17:14:25,093 ERROR [STDERR] at sun.net.www.http.HttpClient.<init>(HttpClient
.java:233)
17:14:25,093 ERROR [STDERR] at sun.net.www.http.HttpClient.New(HttpClient.ja
va:306)
17:14:25,093 ERROR [STDERR] at sun.net.www.http.HttpClient.New(HttpClient.ja
va:323)
17:14:25,093 ERROR [STDERR] at sun.net.www.protocol.http.HttpURLConnection.g
etNewHttpClient(HttpURLConnection.java:788)
萝asdf 2010-11-05
  • 打赏
  • 举报
回复
HTTP Status 500 - Unable to show problem report: java.lang.IllegalStateException
呵呵,不兼容,详细分析下具体的问题,才能找到解决办法,楼主发个错误,也这么吝啬!
sxww321 2010-11-05
  • 打赏
  • 举报
回复
应用起来没?
把详细的错误信息发出来看下
juanzi11 2010-11-05
  • 打赏
  • 举报
回复
在tomcat下正常
在jboss下页面报 :
Firefox 无法找到我的这个print.action 汗!!~~~

后台报错:
HTTP Status 500 - Unable to show problem report: java.lang.IllegalStateException

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧