Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
インデックス作成時、OLE::WordでCall Methodエラー
- From: "Minoru Fujisawa (deneb)" <conex@xxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 30 May 2003 17:11:58 +0900
- X-ml-name: namazu-users-ja
- X-mail-count: 03297
初めて投稿します。
自分ではクリアできない問題があるのでご相談させて下さい。
■ 環境
namazu v2.0.12
OS:Windows2000 Server SP3
WWWServer:IIS
Perl:v5.6.1 built for MSWin32-x86-multi-thread
その他:Word2000がインストールされています。
という環境で構築しております。
■ 問題
HTML、PDFのインデックス作成までは出来るのですが、
Wordのインデックス作成時に以下のようなエラーが出ます。
検索対象のファイルを調べています...
42個のファイルがインデックス作成の対象として見つかりました
1/42 - /C|/doc_lib/Other/AS.doc Can't call method "open" on an undefined value at C:/namazu/share/namazu/filter/win32/olemsword.pl line 194.
1/41 - /C|/doc_lib/Other/AutoservNew.doc Can't call method "open" on an undefined value at C:/namazu/share/namazu/filter/win32/olemsword.pl line 194.
1/40 - /C|/doc_lib/Other/Solution_Reporting_Overview.doc Can't call method "open" on an undefined value at C:/namazu/share/namazu/filter/win32/olemsword.pl line 194, <GEN5> line 3.
■ してみた事
内容からolemsword.plに原因がありそうです。
内容を見ますと、エラーの該当部分は
my $doc = $word->{Documents}->open({
'FileName' => $cfile,
'PasswordDocument' => 'dummy password',
'ReadOnly' => 1
});
の最初の行の場所です。
(過去のログを見ると、この辺りの部分はパスワード付き文章をうまく
ハンドルするために修正されてCommitされたもののようですね……)
そこで、この部分をシンプルにしたりなんだりしても駄目でした。
PerlによるOLEの利用についてもインターネットで色々検索しましたが、
上記のコードに問題があるとも思えません。
サーバーにはWord2000がインストールされておりますが、
OLEはPerlのインストールで自動的に利用可能になると言う事なので
Word2000の状態には関係しないのかなと思っているのですが……。
■ その他
ちなみに、現在はインデックスの作成をASPを使って出来るようにしています。
makeindex.bat
del C:\namazu\var\namazu\index\namazu.htm
del C:\namazu\var\namazu\index\namazu_err.htm
perl C:\namazu\bin\mknmz -a -U -O C:\namazu\var\namazu\index C:\doc_lib 1>C:\namazu\var\namazu\index\namazu.htm 2>C:\namazu\var\namazu\index\namazu_err.htm
というバッチファイルを作成し、
<%
response.write "インデックス作成タスクを起動中です。このままお待ち下さい。<br>"
Set WshShell = Server.CreateObject ("WScript.Shell")
WshShell.Run "C:\WINNT\system32\makeindex.bat"
Set WshShell = Nothing
response.write "インデックス作成タスクが起動しました。<br>"
response.write "<a href='http://demo2000/scripts/search/namazu.cgi.exe'>もどる</a>"
%>
というASPファイルをブラウザから呼び出せるようにしてあります。
その他に通常はTaskManagerにて毎晩インデックス作成をしております。
CONEX