linux tomcat部署含有matlab画图打包的java web程序
首先说下问题:matlab可以把相关算法代码打包成jar文件共java调用,本例使用的jar文件的作用是画图并保存,然后部署在linux的tomcat中进行发布。这里出现了一个问题,具体如下:linux机器是在我的虚拟机上面(可以作为一个远程服务器A),所以我使用xmanager连接A机器,然后启动tomcat进行web程序的部署,然后使用浏览器访问发布的web程序,然后运行测试ok。但是,当我发布tomcat程序后把xmanager关闭后,再次访问web程序,出现错误,保存不了图片。(另外,如果我是在A服务器上面打开terminal进行tomcat web程序的发布,然后关闭terminal,这样的操作是没有问题的,web测试一样ok)
后台报错如下:
unable to open display 'localhost:10.0' You will not be able to display graphics on the screen
其中一个相关的mathwork帖子如下: http://www.mathworks.com/matlabcentral/newsreader/view_thread/308200,不过好像没有答案;
解决方案1:使用远程桌面,配置xmanager的远程桌面到A服务器(具体可以参考:http://www.hack520.com/linux-xmanager-xbrowser/ , 没有亲自试过,好像很麻烦的样子),然后打开一个终端,进行tomcat的web发布,然后关闭xmanager。看web测试是否ok,如果ok,说明此种方案是ok。(这种方案lz还没有测试过);
解决方案2:使用screen。看问题,感觉是关闭了一些不该关闭的东西,使用screen可以后台运行tomcat,这个应该是和服务器A里面发布tomcat一样的,所以这种方案可实现的可能性应该比较大,关于screen的参考:http://hi.baidu.com/widebright/item/e17061c3c44660bb0c0a7b6a ,这个screen安装也有点麻烦(yum使用有问题,所以这种方案lz也没有测试过);
解决方案3:从源头出发,在使用matlab打包的时候,首先进行java文件对jar中的算法进行测试,然后才使用web的jsp页面调用的;但是在java调用中会出现下面的警告:
Warning: 2 invisible figure(s) exist at MCR termination. If your application has terminated unexpectedly, please note that
applications generated by the MATLAB Compiler terminate when there are no
visible figure windows. See the documentation for WaitForFiguresToDie and
WAITFORCALLBACKS for more information. Warning: Class
'graph2d.lineseries'
in use at MCR termination. If your application has terminated unexpectedly, please note that
applications generated by the MATLAB Compiler terminate when there are no
visible figure windows. See the documentation for WaitForFiguresToDie and
WAITFORCALLBACKS for more information. Warning: Class
'scribe.legend'
in use at MCR termination.
。。。
这个的大概意思是说当没有可视化的图像是,由matlab compiler编译的程序会意外终止,所以lz就上网找,找到了一篇关于c++的,如下: http://blog.csdn.net/owldestiny/article/details/4210177,我仿造他的方式(我的是java),修改了matlab的源码在plot函数前面加入了waitforcallbacks(true)然后在plot函数后面加上了pause(5);close(f)waitforcallbacks(false);(这里设置visible为true,之前都是设置visible为false的,这样可以避免弹出画图的窗口,而直接保存)意思和c++的那篇差不多,然后使用java 文件进行测试ok,没有出现警告信息。但是当我使用web发布的时候关闭xmanager还是不行。所以这种方案应该不适合。(lz亲测)
解决方案4:偶然的灵感,我在想可否使用xmanager首先登陆到虚拟机B然后再由虚拟机B登陆到虚拟机A上面,然后发布程序,然后关闭xmanager,这样是否可以行呢?经过lz的测试,发现这种方案是可行的,可以访问且能保存图像。
说明:如果要在linux上面发布tomcat程序(含有matlab打包的jar文件的时候),需要首先配置环境,即matlab的环境,具体可以参考lz之前的相关blog;
分享,快乐,成长
转载请注明出处:http://blog.csdn.net/fansy1990
linux tomcat部署含有matlab画图打包的java web程序的更多相关文章
- Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...
- Linux Tomcat部署常用命令
Linux Tomcat部署常用命令 1.连接服务器 2.进入webapps目录: cd /usr/local/tomcat8080/webapps/ 3.上传文件(war包等):rz 4.删除文件 ...
- 在MyEclipse里连接Tomcat部署到项目(maven项目和web项目都适用)
前提, Tomcat *的下载(绿色版和安装版都适用) Tomcat *的安装和运行(绿色版和安装版都适用) Tomcat的配置文件详解 在Eclipse里连接Tomcat部署到项目(maven项目和 ...
- Linux学习心得之 jnlp的文件和java应用程序安全设置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 jnlp的文件和java应用程序安全设置 1.前言2. jnlp的文件打开3.java应用程 ...
- 二十二. 安装部署Tomcat服务器、使用Tomcat部署虚拟主机、使用Varnish加速Web
web proxy web1 web2 1.安装部署Tomcat服务器 web1 1.1 使用RPM安装JDK环境 ]# yum -y install java-1.8.0-openjdk ]# ...
- 新浪云部署java web程序 注意事项
在新浪云新手指南里有部署java的示例,但是对一个新手来说难免会有一些地方犯错,折腾了好长时间才把自己的java web部署到了新浪云.这里主要写一些我遇到的问题与第一次使用新浪云的朋友分享一下. 首 ...
- linux tomcat部署 之 jre
这两天需要在ubantu服务器部署一下tomcat, 本以为轻轻松松就能搞定的事情但是一直不能成功,就tomcat的安装步骤其实就是下载解压的工程,奈何,每次 运行 ./startup.sh之后 显 ...
- Linux tomcat 部署war包
将打包好的 war包放在 webapps的文件夹下 在tomcat/conf 文件夹下的 server.xml 里填加 <Context path="" docBase=&q ...
- 在Eclipse里连接Tomcat部署到项目(maven项目和web项目都适用)
不多说,直接上干货! 前提, Tomcat *的下载(绿色版和安装版都适用) Tomcat *的安装和运行(绿色版和安装版都适用) Tomcat的配置文件详解 我这里以,manven项目为例,当然,w ...
随机推荐
- DELPHI XE7 新的并行库
DELPHI XE7 的新功能列表里面增加了并行库System.Threading, System.SyncObjs. 为什么要增加新的并行库? 还是为了跨平台.以前要并行编程只能从TThread类继 ...
- 基于visual Studio2013解决面试题之0210树的最远距离
题目
- 初识JAVA,对servlet的理解
一.WEB开发的简单理解 Web开发是一个指代网页或站点编写过程的广义术语.网页使用 HTML.CSS 和 JavaScript编写.这些页面可能是类似于文档的简单文本和图形.页面也能够是交互式的,或 ...
- sap的示例代码
sap的示例代码查看1.在SE38环境下的程序名输入栏输入'DEMO*'后按F4,你可以查到SAP所有的DEMO示例程序,好好看看,你会学到很多ABAP功能的实现方法.2.运行“ABAPDOCU”T- ...
- If-Modified-Since页面是否更新
第一次先请求某个网页,抓取到本地,假设文件名为 a.html.这时文件系统有个文件的修改时间. 第二次访问网页,如果发现本地已经有了 a.html,则向服务器发送一个 If-Modified-Sinc ...
- ZOJ 3529 A Game Between Alice and Bob(博弈论-sg函数)
ZOJ 3529 - A Game Between Alice and Bob Time Limit:5000MS Memory Limit:262144KB 64bit IO For ...
- fck编辑器的使用
FCK编辑器的使用 注意:编辑器有浏览器缓存,所以修改配置后,一定要删一下缓存 这个编辑器是采用 html+javascript 开发出来的 通常作为插件来使用: 1,下载插件包 2,解压,加压之后看 ...
- Android程序的目录结构
本篇文章我们将介绍Android应用程序的目录结构.本目录下有如图的目录结构: 下面我们来一 一介绍: 1. Src:该目录中存放的是该项目的源代码 2. Gen:该目录下的文件全部都 ...
- Java泛型之<T>
这里不讲泛型的概念和基础知识,就单纯的就我的理解说一下泛型中的<T> 一. <T> 下面的一段码就可以简单使用了<T>参数,注释就是对<T>的解释. p ...
- 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比
本文主要选取了目前比较流行的JavaScript框架Dojo.Google Closure.jQuery.Prototype.Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供 ...