移置到linux下开发B/S 的OA问题,紧急求救!!!

时间:2022-11-21 10:42:15
本人是将NT下的OA服务器端移置到Linux,然后在NT里进行OA的客户端开发,现存在以下问题:

  保存在数据库里的信息不能通过后台服务器直接转化成HTML,只能通过浏览器端的绝对路径访问后,才能打开。并且服务器重启后,大部分数据库链接信息都丢失,表象看来是数据没有保存到服务器端,似乎只保存在了缓存中。
  譬如,在主页数据库中以链接的方式打开BBS.nsf,链接失效,但在浏览器输入绝对路径则能够打开该论坛的数据库,并且此后主页数据库中的链接也生效了。但,重启服务器后,事故又重演。

本人第一次在linux下配置Domin,许多问题尚在摸索中,恳望高手指点,谢谢先!!!

8 个解决方案

#1


linux下domino主要可能会出现两种问题:
1、“/”、“\”有时与window是反的;
2、区分字母大小写。
还有就是用户权限需要注意,这也主要是指对文件系统的读写增删。

#2


自己顶一下,我已经修改了“/”、“\”的问题,菜单才能够出现,只是不稳定。
我的所有菜单都是通过一个代理赋的值,当菜单连接失效,后台打印
主页菜单“agent_mainmenu_show错误  4063Database /sysadmin.nsf has not been opened yet
2005-01-21 21:05:44   Agent 'agent_mainmenu_show' error: No RESUME
注:sysadmin.nsf是我保存菜单信息的库,代理属性是这样的:按操作选择执行,文档选“无”,请帮帮忙,谢谢!

#3


错误在于sysadmin.nsf无法获得
检查该库的存在,访问该库的权限,访问该库语句的路径格式(你最好能帖出来看看)

#4


没打开,应该是路径问题,导致没找到文件吧。

#5


Sub Initialize
On Error Goto errhandle
Dim s As New notessession
Dim strserver As String
Dim strpath As String
Dim strcuruser As String 
Dim doc As notesdocument
Dim dbcurrent As Notesdatabase
Dim user_current As notesname
Dim UserMail As Variant 
Dim db As notesdatabase
Dim view1 As notesview
Dim view2 As notesview
Dim doc1 As notesdocument
Dim doc2 As notesdocument
Dim menu_text_1 As String
Dim menu_text_2 As String
Dim java_str_1 As String
Dim java_str_2 As String
Dim java_str_3 As String
Dim item As notesitem
Dim numstr As String
Dim dbdir As String
Dim judge_flag As Integer
Dim item_11 As notesitem
Dim item_22 As notesitem

Set dbcurrent=s.currentdatabase
Set doc=s.documentcontext
'取得文件路径,可以作为单独函数调用
'strpath=Strleft(db_current.filepath,DB_Main_Name,1)
strserver=dbcurrent.server
strcuruser=doc.fld_username(0)
Set user_current=New notesname(strcuruser)
strcuruser=user_current.abbreviated
usermail=getusermail(strcuruser)'邮箱地址
doc.fld_url=usermail

dbdir=doc.getitemvalue("dbdir")(0)
Set db = s.getdatabase(strserver,dbdir+"SysAdmin.nsf")
Set view1 = db.GetView( "view_firstmenu_all" )
Set view2 = db.GetView( "view_secondmenu_all" )
Set item_11=doc.getfirstitem("user_roles")
menu_text_1=""
menu_text_2=""
java_str_1=""
java_str_2=""
java_str_3=""
judge_flag=0

Set doc1 = view1.GetFirstDocument
While Not(doc1 Is Nothing)
Set item_22=doc1.getfirstitem("roles")
Forall v In item_11.values
If v="" Then
Exit Forall
End If
Forall vv In item_22.values
If v=vv Then
judge_flag=1
Exit Forall
End If
End Forall
If judge_flag=1 Then
Exit Forall
End If
End Forall
If  judge_flag=1 Then
numstr=doc1.getitemvalue("firstmenu_sort")(0)
menu_text_1=menu_text_1+"<td height=""20""  align=""center"" valign=""middle""  id=menu"+numstr+" class=""menu1_td_off"""
menu_text_1=menu_text_1+" onclick=""MM_clickMenu("+numstr+");return false;"" noWrap><a href=""#"">"+doc1.getitemvalue("firstmenu_name")(0)+"</a></td>"
java_str_1=java_str_1+|document.all.submenu|+numstr+|.style.display = 'none';|
java_str_2=java_str_2+|document.all.menu|+numstr+|.className = "menu1_td_off";|
java_str_3=java_str_3+|case |+numstr+| : document.all.menu|+numstr+|.className = "menu1_td_on"; MM_showHideLayers('submenu|+numstr+|','','show'); break;|
Set item=doc1.getfirstitem("include_menu")
menu_text_2=menu_text_2+|<td  id=submenu|+numstr+| style="DISPLAY: none" valign=middle noWrap align=left  height=22> <div align=left>|
Forall v In item.values
Set doc2=view2.getdocumentbykey(v)
If doc2 Is Nothing Then
Exit Forall
End If
judge_flag=0
Set item_22=doc2.getfirstitem("roles")
Forall vv In item_11.values
Forall vvv In item_22.values
If vv=vvv Then
judge_flag=1
Exit Forall
End If
End Forall
If judge_flag=1 Then
Exit Forall
End If
End Forall
If judge_flag=1 Then
menu_text_2=menu_text_2+|&nbsp;||&nbsp;<a class="toplink" href="/|+dbdir+doc2.getitemvalue("secondmenu_databaselink")(0) +|" target="frame_main">|+doc2.getitemvalue("secondmenu_name")(0)+|</a>|
End If
End Forall
menu_text_2=menu_text_2+|</div></td>|
End If
judge_flag=0
Set doc1 = view1.GetNextDocument(doc1)
Wend
doc.menu_text_1=menu_text_1
doc.java_str_1=java_str_1
doc.java_str_2=java_str_2
doc.java_str_3=java_str_3
doc.menu_text_2=menu_text_2

errhandle:
Msgbox "主页显示菜单agent_mainmenu_show错误"+Str(Err)+Cstr(Error)
End Sub

#6


注明:在NT下没问题,但在linux出现不稳定

#7


我也觉得应该是路径得问题

你那个dbdir有没有输出看过

对不对得

#8


回各位大哥:dbdir打印是对的即"OA/"

#1


linux下domino主要可能会出现两种问题:
1、“/”、“\”有时与window是反的;
2、区分字母大小写。
还有就是用户权限需要注意,这也主要是指对文件系统的读写增删。

#2


自己顶一下,我已经修改了“/”、“\”的问题,菜单才能够出现,只是不稳定。
我的所有菜单都是通过一个代理赋的值,当菜单连接失效,后台打印
主页菜单“agent_mainmenu_show错误  4063Database /sysadmin.nsf has not been opened yet
2005-01-21 21:05:44   Agent 'agent_mainmenu_show' error: No RESUME
注:sysadmin.nsf是我保存菜单信息的库,代理属性是这样的:按操作选择执行,文档选“无”,请帮帮忙,谢谢!

#3


错误在于sysadmin.nsf无法获得
检查该库的存在,访问该库的权限,访问该库语句的路径格式(你最好能帖出来看看)

#4


没打开,应该是路径问题,导致没找到文件吧。

#5


Sub Initialize
On Error Goto errhandle
Dim s As New notessession
Dim strserver As String
Dim strpath As String
Dim strcuruser As String 
Dim doc As notesdocument
Dim dbcurrent As Notesdatabase
Dim user_current As notesname
Dim UserMail As Variant 
Dim db As notesdatabase
Dim view1 As notesview
Dim view2 As notesview
Dim doc1 As notesdocument
Dim doc2 As notesdocument
Dim menu_text_1 As String
Dim menu_text_2 As String
Dim java_str_1 As String
Dim java_str_2 As String
Dim java_str_3 As String
Dim item As notesitem
Dim numstr As String
Dim dbdir As String
Dim judge_flag As Integer
Dim item_11 As notesitem
Dim item_22 As notesitem

Set dbcurrent=s.currentdatabase
Set doc=s.documentcontext
'取得文件路径,可以作为单独函数调用
'strpath=Strleft(db_current.filepath,DB_Main_Name,1)
strserver=dbcurrent.server
strcuruser=doc.fld_username(0)
Set user_current=New notesname(strcuruser)
strcuruser=user_current.abbreviated
usermail=getusermail(strcuruser)'邮箱地址
doc.fld_url=usermail

dbdir=doc.getitemvalue("dbdir")(0)
Set db = s.getdatabase(strserver,dbdir+"SysAdmin.nsf")
Set view1 = db.GetView( "view_firstmenu_all" )
Set view2 = db.GetView( "view_secondmenu_all" )
Set item_11=doc.getfirstitem("user_roles")
menu_text_1=""
menu_text_2=""
java_str_1=""
java_str_2=""
java_str_3=""
judge_flag=0

Set doc1 = view1.GetFirstDocument
While Not(doc1 Is Nothing)
Set item_22=doc1.getfirstitem("roles")
Forall v In item_11.values
If v="" Then
Exit Forall
End If
Forall vv In item_22.values
If v=vv Then
judge_flag=1
Exit Forall
End If
End Forall
If judge_flag=1 Then
Exit Forall
End If
End Forall
If  judge_flag=1 Then
numstr=doc1.getitemvalue("firstmenu_sort")(0)
menu_text_1=menu_text_1+"<td height=""20""  align=""center"" valign=""middle""  id=menu"+numstr+" class=""menu1_td_off"""
menu_text_1=menu_text_1+" onclick=""MM_clickMenu("+numstr+");return false;"" noWrap><a href=""#"">"+doc1.getitemvalue("firstmenu_name")(0)+"</a></td>"
java_str_1=java_str_1+|document.all.submenu|+numstr+|.style.display = 'none';|
java_str_2=java_str_2+|document.all.menu|+numstr+|.className = "menu1_td_off";|
java_str_3=java_str_3+|case |+numstr+| : document.all.menu|+numstr+|.className = "menu1_td_on"; MM_showHideLayers('submenu|+numstr+|','','show'); break;|
Set item=doc1.getfirstitem("include_menu")
menu_text_2=menu_text_2+|<td  id=submenu|+numstr+| style="DISPLAY: none" valign=middle noWrap align=left  height=22> <div align=left>|
Forall v In item.values
Set doc2=view2.getdocumentbykey(v)
If doc2 Is Nothing Then
Exit Forall
End If
judge_flag=0
Set item_22=doc2.getfirstitem("roles")
Forall vv In item_11.values
Forall vvv In item_22.values
If vv=vvv Then
judge_flag=1
Exit Forall
End If
End Forall
If judge_flag=1 Then
Exit Forall
End If
End Forall
If judge_flag=1 Then
menu_text_2=menu_text_2+|&nbsp;||&nbsp;<a class="toplink" href="/|+dbdir+doc2.getitemvalue("secondmenu_databaselink")(0) +|" target="frame_main">|+doc2.getitemvalue("secondmenu_name")(0)+|</a>|
End If
End Forall
menu_text_2=menu_text_2+|</div></td>|
End If
judge_flag=0
Set doc1 = view1.GetNextDocument(doc1)
Wend
doc.menu_text_1=menu_text_1
doc.java_str_1=java_str_1
doc.java_str_2=java_str_2
doc.java_str_3=java_str_3
doc.menu_text_2=menu_text_2

errhandle:
Msgbox "主页显示菜单agent_mainmenu_show错误"+Str(Err)+Cstr(Error)
End Sub

#6


注明:在NT下没问题,但在linux出现不稳定

#7


我也觉得应该是路径得问题

你那个dbdir有没有输出看过

对不对得

#8


回各位大哥:dbdir打印是对的即"OA/"