我在Infobase.war
上创建了一个网络应用eclipse
,并托管在Tomcat (7.0.27) (OS: Windows server 2003)
上。应用程序的index.jsp
导航到网络上的某个位置以访问文件并将其显示在网页上(请参阅下面的完整index.jsp
代码。)
问题是,当Tomcat
作为console
运行时,通过手动运行Startup.bat
,应用程序可以正常运行。
但是如果Tomcat
作为service
(通过Windows服务)运行,则应用程序会运行,但无法访问remote machine
上的文件,最终会显示网页,并显示错误消息代码中的案例(非访问)。
Tomcat
通过tomcat7w.exe
的服务设置已经完成。堆限制已经增加。
index.jsp的代码是:
<html>
<head>
<title>Infobase </title>
<link rel="stylesheet" type="text/css" href="my.css"></link>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//$("div#block").load('https://`inggnh018cfr`:8443/infobase/Navigate.do');
//ADS
//String path="\\\\"+getServletContext().getInitParameter("server_ip")+getServletContext().getInitParameter("filepath");
$("div#block").load('https://132.186.18.155:8443/infobase/Navigate.do?f=\\\\132.186.198.175\\\\gc_sl_pg\\Quota\\EFIE\\Documents\\EFIE_new\\1.%20QUALITY');
$("div#block1").load('https://132.186.18.155:8443/infobase/Navigate.do?f=\\\\132.186.198.175\\\\gc_sl_pg\\Quota\\EFIE\\Documents\\EFIE_new\\2.%20PROCESS');
$("div#block2").load('https://132.186.18.155:8443/infobase/Navigate.do?f=\\\\132.186.198.175\\\\gc_sl_pg\\Quota\\EFIE\\Documents\\EFIE_new\\3.%20DOCUMENTS');
$("div#block3").load('https://132.186.18.155:8443/infobase/Navigate.do?f=\\\\132.186.198.175\\\\gc_sl_pg\\Quota\\EFIE\\Documents\\EFIE_new\\4.%20INFORMATION%20HANDBOOK');
});
function expand(){
// $(obj).click(function(){
obj=window.event.srcElement;
if(obj.value=='true'){
//alert('http://localhost:8080/infobase/Navigate.do?f='+window.event.srcElement.id);
//$.ajax({url:'https://inggnh018cfr:8443/infobase/Navigate.do?f='+obj.id ,success:function(result){
$.ajax({url:'https://132.186.18.155:8443/infobase/Navigate.do?f='+obj.id ,success:function(result){
//alert(result);
//$(obj).append("<div class='panel' id='div-"+obj.id+"'>"+result+"</div>");
$(obj).after(result);
//$("div#"+window.event.srcElement.id).load(result);
}});
obj.value='false';
//alert('http://inggnh018cfr:8080/infobase/ScreenServ.do?f='+obj.firstChild.nodeValue);
/*screen change*/
//$.ajax({url:'https://132.186.18.155:8443/infobase/ScreenServ.do?f='+obj.firstChild.nodeValue ,success:function(result){
$.ajax({url:'https://132.186.18.155:8443/infobase/ScreenServ.do?f='+obj.id,success:function(result){
//alert(result);
if(result!=0)
//document.getElementById("frame").src="\\\\132.186.18.155\\gc_sl_pg\\Deptt_Quota\\EFIE\\Documents\\EFIE\\Obsolete Documents\\PPTs\\"+result;
{
var ppt="\\\\132.186.198.175\\gc_sl_pg\\Quota\\EFIE\\Documents\\EFIE\\Obsolete Documents\\PPTs\\"+result;
window.open(ppt);
}
//else
//document.getElementById("frame").src="infobase.pps";
//$(obj).append("<div class='panel' id='div-"+obj.id+"'>"+result+"</div>");
//$(obj).after(result);
//$("div#"+window.event.srcElement.id).load(result);
}});
}
else
if(obj.value=='false'){
// alert(obj.firstChild.nodeValue);
obj.value='true';
// alert(.nodeName);
$(obj.nextSibling).remove();
//alert('done');
}
}
答案 0 :(得分:0)
从控制台运行时,该过程将以当前登录的用户身份运行,该用户看起来可以访问这些网络位置。作为服务运行时,该进程作为LocalSystem运行,无法访问这些网络位置。
要解决此问题,请创建一个域用户,该用户具有访问这些网络位置所需的最低权限,然后将您的服务配置为以该用户身份运行。