2009年12月3日木曜日

Windows7 + oracle 10g R1 試行手順

!!! これは10g R1に関するエントリです。10g R2はこちら !!!


アクセス解析見てると、「oracle10g」を「Windows7」にぶち込みたい方が結構いるみたいですね。
俺が試したインストール手順をとりあえず書いときます。
まぁ失敗したんだけどねwwwwwww
書いてたら、詳しい人が解決策を教えてくれるかもという、淡い期待です。


「setup.exe」をそのまま起動すると、
「お前のWindowsのVerは対応してないんですけどwwww」
っていってきます。

じゃ、誤魔化しちゃいましょう。

「setup.exe」のプロパティを開きます。
「互換性」ってタブが存在するかと思います。
「互換モード」の「互換モードでこのプログラムを実行する」にチェックつけてやってください。

とりあえずこれでOk

あとは、「setup.exe」を起動するとちゃんとインストーラが動くはず。

こっから先のインストール手順に関しては他のサイトで、
山のように解説してくださってるんで割愛します。

で、問題が発生するのは、一番最後。
「Oracle Database Configuration Assistant」とやらのインストール時です。
これが「アクセス権ナスwwwwwww涙目wwwwww」(12546[アクセス権なし])ってエラーをはきます。

ここで積む。

続行すると、
「「Oracle Database Configuration Assistant」のインストールに失敗したけど、必須じゃないからよくね?」
的な文章がむにゅっとポップアップで出てきます。

あれ?そうなの?びっくりさせないでよねwwwww
とか思って、とりあえずSQL*Plus起動すっかなーと、
コマンドプロンプトで[sqlplus]って打ち込むと、
「アクセス権ナスwwwwwww涙目wwwwww」(12546[アクセス権なし])ってエラーをはきます。

だめじゃねーかwwwwwwwwwwwww俺涙目wwwwwwwwwwww
ってなるかと思います。

エラーコードは同一なことから見ても、おそらく原因は同じと思われます。
アクセス権がどのアクセス権なのかもサッパリです。
詳しい人ボスケテ

2009年11月7日土曜日

任意形式のXMLリクエスト・レスポンスの送受信


0. 準備① すでにEclipse、WTP、Axis2の設定は完了していること。
Eclipse + Axis2連携手順 及び簡易サービス作成手順 」参照
1. サーバ側プロジェクトの作成① ファイル -> 新規 -> プロジェクト -> Web -> 動的Webプロジェクト を選択する
② 構成の変更からプロジェクト・フィアセットを開き、以下の項目のみを有効にする
Axis2 Webアプリケーション
Java
動的Webモジュール
③ 任意のプロジェクト名を入力
④ 完了を押下
2. サーバ側プロジェクト初期設定① Eclipseのワークスペース \ 作成したプロジェクト\ WebContent \ WEB-INF \ lib ディレクトリに
Axis2を展開したディレクトリ\lib ディレクトリ配下のjarファイルをコピーする
② プロジェクトをリフレッシュ
③ Web.xmlを書き換える
org.apache.axis2.transport.http.AxisAdminServlet

org.apache.axis2.webapp.AxisAdminServlet
3. サービスの作成① 以下のクラスを作成する
public class test {
    public OMElement echo( OMElement request ){ return request; }
}

echoメソッドは送信されてきたメッセージを、そのまま返却するものである
4. Webサービスの登録① 作成したクラスを右クリック -> Webサービス -> Webサービスの作成を実行
② デフォルトの設定で十分なので、なにも設定せずそのまま完了ボタンを押下
この作業でWSDLが作成される。
5. クライアントプロジェクトの作成① ファイル -> 新規 -> プロジェクト -> JAVA -> JAVAプロジェクト を選択
② 任意のプロジェクト名を入力
③ 完了を押下
6. クライアントプロジェクト初期設定① 作成したプロジェクトのプロパティを開く
② JAVAのビルド・パスを表示
③ 外部JARの追加を押下
④ Axis2を展開したディレクトリ \ lib 配下のJarをすべて追加
7. クライアントを作成① 以下のクラスを作成する
# 適宜編集してください
public class Client {
    static public void main (String[] args ) {
        {
        // エンドポイントURL
        // ~/services/以降がクラス名
        String endpointStr = "http://localhost:8080/サーバ側プロジェクト名/services/test/";
        ServiceClient sender = null;
        Options options = new Options();
        try {
            sender = new ServiceClient
        } catch(AxisFault e ){
            e.printStackTrace();
           return;
        }

        // オプションの設定
        // エンドポイントの設定
        options.setTo(new EndpointReference( endpointStr ) );

        // プロトコルの設定
        options.setTransportInProtocol( Constants.TRANSPORT_HTTP);

        // オプションを反映する
        sender.setOptions( options );//送信メッセージの作成
        OMFactory fac = OMAbstractFactory.getOMFactory( );

        // ネームスペースの生成
        OMNamespace omNs = fac.createOMNamespace("http://作成したサービスのパッケージ" , "Request" );

        // 要素の作成
        OMElement request =
            fac.createOMElement(
                "echo", // 実行するメソッド
                omNs);
        OMElement msg = fac.createOMElement("Msg", omNs);
        // テキストの追加
        msg.setText ( "Hello, World !!!" );

        // 要素の追加
        request.addChild( msg );
        try{
            // リクエストの送信、レスポンスの受信
            OMElement response = sender.sendReceive( request );

            // レスポンスをコンソールに表示
            System.out.println( "レスポンス : " + response.toString() );
        }catch(AxisFault e ){
            e.printStackTrace();
           return;
        }
    }
}
8. 通信の確認① サーバを起動する。
② クライアントを実行する。
③ コンソール上に以下の表示があれば完了です
# 以下の文は適宜改行しています。
本来は一行で表示されます。
レスポンス :
<echoresponse xmlns:ns="http://サービスパッケージ名">
<return>
<msg xmlns:request="http://サービスパッケージ名">
Hello, World !!!
</msg>
</return>
</echoresponse>

2009年11月6日金曜日

Apache Axis2 + Eclipse + WTP 導入手順

0. 準備

・ Eclipse 3.5
・ WTP
http://mergedoc.sourceforge.jp/pleiades-redirect/3.4/pleiades_java.zip.html )
・ Axis2 1.5 Standard Binary Distribution
http://ftp.kddilabs.jp/infosystems/apache/ws/axis2/1_5/axis2-1.5-bin.zip )
・ Tomcat6.0
http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.exe )

上記ファイルをダウンロードする。

1. Eclipse 設定

① ウィンドウ -> 設定 -> Webサービス -> Axis2設定
[ Axis2 ランタイム ]タブの[ Axis2 ランタイム・ロケーション ]に
Axis2を展開したディレクトリを設定する。
② ウィンドウ -> 設定 -> Webサービス -> サーバとランタイム
[ Web サーバ・ランタイム ] を [ Apache Axis2 ]に設定する

2. プロジェクトの作成

① ファイル -> 新規 -> プロジェクト -> Web -> 動的Webプロジェクト を選択する
② 構成の変更からプロジェクト・フィアセットを開き、以下の項目のみを有効にする
Axis2 Webアプリケーション
Java
動的Webモジュール
③ 任意のプロジェクト名を入力
④ 完了を押下

3. プロジェクト初期設定

① Eclipseのワークスペース \ 作成したプロジェクト\ WebContent \ WEB-INF \ lib ディレクトリに
Axis2を展開したディレクトリ\lib ディレクトリ配下のjarファイルをコピーする。
② プロジェクトをリフレッシュ

③ Web.xmlを書き換える
org.apache.axis2.transport.http.AxisAdminServlet

org.apache.axis2.webapp.AxisAdminServlet

4. サービスの作成

① 以下のクラスを作成する。

public class test{
        public String Hello () {
            return "Hello!";
        }
        public String Hello2 ( String name ) {
            return "Hello, " + name + "!";
        }
        public String[] Hellos () {
            String[]    helloArray  =   {   "Hello!"    ,
                                            "Hello!!"   ,
                                            "Hello!!!"
                                            };
            return    helloArray;
        }
    }


5. Webサービスの登録

① 作成したクラスを右クリック -> Webサービス -> Webサービスの作成を実行
② デフォルトの設定で十分なので、なにも設定せずそのまま完了ボタンを押下。

6. 通信の確認

① 以下のURLに接続する。
http://localhost:8080/ プロジェクト名/services/test/Hello
[[期待応答]]
<ns:HelloResponse xmlns:ns="http://ws.apache.org/axis2">
        <ns:return>Hello!</ns:return>
    </ns:HelloResponse>
http://localhost:8080/ プロジェクト名/services/test/Hello2?name=Bob
[[期待応答]]
<ns:Hello2Response xmlns:ns="http://ws.apache.org/axis2">
        <ns:return>Hello, Bob!</ns:return>
    </ns:Hello2Response>
http://localhost:8080/ プロジェクト名/services/test/Hellos
[[期待応答]]
<ns:HellosResponse xmlns:ns="http://ws.apache.org/axis2">
        <ns:return>Hello!</ns:return>
        <ns:return>Hello!!</ns:return>
        <ns:return>Hello!!!</ns:return>
    </ns:HellosResponse>
*期待応答はすべてRESTの応答である