ページ 1 / 1

[解決]OpenOffice3.3のポート番号変更方法を教えて下さい

Posted: 4月 28, 2011, 3:18 pm
by age_sdk
ポート番号を変更する方法を教えてください。

JavaからOpenOfficeを呼び出して操作しようとしており、ポート番号が8100(デフォルト)だとつながる状態になりました。
ポート番号を外部ファイルから読み込んで処理できるように、ポート番号を固定ではなく変動可能にしたいと考えています。

【環境】
 WindowsXP SP3

【インストールバージョン】
 OpenOffice3.3

Re: OpenOffice3.3のポート番号変更方法を教えて下さい

Posted: 4月 28, 2011, 11:40 pm
by MoIshihara
age_sdk さん こんにちは

・Bridge は使っていないので詳しいことは解りませんが、起動オプションの -accept で指定する port= のことだろうと思います。
・詳しい説明は開発者ガイド( http://dlc.sun.com/pdf/819-1324/819-1324.pdf )を見て下さい...と言いたい所ですが、リンク切れの様です...
・英語のDeveloper's Guide wiki ならこちらです http://wiki.services.openoffice.org/wik ... pers_Guide

↓これで解りますか?(既に起動中の場合は -accept オプションは無視されます、クイックスタートは終了させて下さい)
soffice -accept=socket,host=localhost,port=8100;urp

Re: OpenOffice3.3のポート番号変更方法を教えて下さい

Posted: 5月 2, 2011, 12:32 pm
by age_sdk
MoIshiharaさん こんにちわ

回答頂き、ありがとうございます。

以下のコマンドプロンプトで実行した場合、どちらのポートでも接続できました。
・・・どちらでも接続できたということはポートは自由に変更可能ということですよね?
soffice -accept=socket,host=localhost,port=8100;urp
soffice -accept=socket,host=localhost,port=8000;urp


Javaからの接続では、unoを使用しています。
Javaを使用して接続する場合と、sofficeコマンドを使用して接続する場合とでは、何か決まりが違うのでしょうか。

下記の接続文字列を使用して、calcファイルを開くJavaプログラムを実装しているのですが、
port=8100にしてJavaを実行した場合、正常に起動されるのですが、
port=8000に変更して実行すると以下のようなエラーが出てしまいます。

【接続文字列】
uno:socket,host=localhost,port=8100;urp;StarOffice.NamingService
uno:socket,host=localhost,port=8000;urp;StarOffice.NamingService

【エラー】
com.sun.star.connection.NoConnectException: java.net.ConnectException: Connection refused: connect
at com.sun.star.lib.connections.socket.socketConnector.connect(socketConnector.java:163)
at com.sun.star.comp.connections.Connector.connect(Connector.java:138)
at com.sun.star.comp.urlresolver.UrlResolver$_UrlResolver.resolve(UrlResolver.java:120)
at jp.co.openoffice.calc.apitest.ApiTestOpenOffice.connect(ApiTestOpenOffice.java:99)
at jp.co.openoffice.calc.apitest.ApiTestReadMain.main(ApiTestReadMain.java:37)

Re: OpenOffice3.3のポート番号変更方法を教えて下さい

Posted: 5月 4, 2011, 1:40 am
by MoIshihara
age_sdk さん こんにちは

・こちらのトピックをよく読んで下さい http://user.services.openoffice.org/ja/ ... 25&t=2#p11
・ソースリストも見ずに、バグを特定する事は不可能です。

・Java SDK をインストールして確認してみましたが、8000 でも 8100 でも接続出来ました。
・こちらのサンプルで確認しました。( http://www.okapiproject.com/java/java_t ... am1.htm#a2 )

Re: OpenOffice3.3のポート番号変更方法を教えて下さい

Posted: 5月 4, 2011, 3:12 pm
by 久保宏志
age_sdkさん,

はじめまして。WriterフォーラムでMoIshiharaさんにお世話になっている者です。
OpenOffice.orgのプログラミングインタフェースに明るい訳ではありませんが,
通りがかりに読んだ記事がちょっと気になりました。

>以下のコマンドプロンプトで実行した場合、どちらのポートでも接続できました。
>・・・どちらでも接続できたということはポートは自由に変更可能ということですよね?
>soffice -accept=socket,host=localhost,port=8100;urp
>soffice -accept=socket,host=localhost,port=8000;urp

コマンドの意味はたぶん,
OpenOffice.orgを接続要求待機モード(Listening Mode)で立ち上げ,
localhostの8100番ソケット,あるいは8000番ソケットで,
urpプロトコルによる接続要求を待ち受けさせる,
ということだと思います。

>下記の接続文字列を使用して、calcファイルを開くJavaプログラムを実装しているのですが、
>port=8100にしてJavaを実行した場合、正常に起動されるのですが、
>port=8000に変更して実行すると以下のようなエラーが出てしまいます。

>【接続文字列】
>uno:socket,host=localhost,port=8000;urp;StarOffice.NamingService

Javaプログラムがこの接続文字列で表現していることはたぶん,
OpenOffice.orgがlocalhostに接続要求待機モードで立ち上がっていることを期待し,
8000番ソケットにurpプロトコルで接続するから,
"StarOffice.NamingService"サービスのインスタンスをつくり,
それを教えてくれ,
ということだと思います。

>【エラー】
>com.sun.star.connection.NoConnectException: java.net.ConnectException: Connection refused: connect

$netstat -a コマンドの結果にたぶん

TCP <hostName>:8000 <hostName>:0 LISTENING

の行が含まれていないのではないでしょうか。この状態ですと8000番のソケットに接続することはできません。
エラーはそれを伝えている可能性が大のような気がします。

参考になれば幸いです。

Re: OpenOffice3.3のポート番号変更方法を教えて下さい

Posted: 5月 9, 2011, 2:33 pm
by age_sdk
MoIshiharaさん、久保さん

回答ありがとうございます。

お二人の回答を参考にさせていただき、試行錯誤したところ、
Javaから8000番のポートを呼び出すことができました!!

エラーが発生していた原因としては、
JavaからOpenOfficeのプロセスを立ち上げるため、BootstrapSocketConnectorというクラスを使っております。
そのプロセスがデフォルト値のport:8100で生成されており、
プロセスと実際に接続する際のポート(port:8000)が異なっていたために、エラーが発生していました。


あいまいな質問に対して丁寧な対応をしていただき、ありがとうございます。