• ベストアンサー

C# と JAVA の値渡しについて

C#(画面) から JAVA (ビジネスロジック) に (SAOPで連携…今回の質問には関係ないかも) 値を渡しているんですが、 文字列はJAVA側に来ると空文字になりました。 しかし、int や、オブジェクト とかは どうなるんでしょう? どなたか経験した事のある方教えてくださいませ。

質問者が選んだベストアンサー

  • ベストアンサー
  • t4t
  • ベストアンサー率55% (47/84)
回答No.2

設定ファイルもあります。 C#では文法(属性)やフレームワークでWebServiceのクライアントをサポートしていますから、普通のメソッド呼び出しのようにビジネスロジックのプロキシを呼び出せばビジネスロジックが呼ばれるでしょう。 内部的には、指定によりますが普通はxsdスキーマというスキーマファイル(このオブジェクトはこういうデータをXMLでこういう風に記述する、というのが提起されているファイル)にしたがって、オブジェクトインスタンス内部のデータをXMLドキュメントにします。 それをSOAPでビジネスロジックに渡します。 Java側では、同じくスキーマファイルを参照して、XMLからJavaのオブジェクトに値を代入してインスタンス化します。 Java側のファイルに関してですが、 おそらくXML WebServiceを直組みしているわけではなく、J2EEをサポートするアプリケーションサーバ(WebSphere, WebLogicなど)上で動作していると思いますので、アプリケーションサーバ側のドキュメントを参照するとよいと思います。 原理を検索なさるなら xml web service soap あたりで検索するとよいでしょう。

taka-yuki
質問者

お礼

遅くなりました。 キーワードの方でいろいろ検索してみました。 SOAPなどの事はみていて、 あぁなるほど!と思うこともしばしばでした。 ただ、やはりプログラム間の連携についての 情報って少ないですね。 t4tさんみたいな技術者って貴重ですよ。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • t4t
  • ベストアンサー率55% (47/84)
回答No.1

SAOPではなくSOAPでしょうか? ビジネスロジックはXML WebServiceとしてサーブされているのでしょうか。 その場合、C#からJavaへのXML/SOAP経由の値渡しは、それぞれの実装に依存します。 うまくすれば文字列は文字列のまま再現されます。 intもintとして再現されます。 オブジェクトも、そのインスタンスをSOAPで通信するためのXMLにする際の取り決めがしっかりしているなら、Javaでも意味論的に同じオブジェクトのインスタンスとして再現されます。 そうでない場合はエラーとなって例外がthrowされたり、不定値となってJavaに渡されたりします…。

taka-yuki
質問者

お礼

回答ありがとうございます! ありがとうポイントってどうやって渡すんだろう…。

taka-yuki
質問者

補足

t4t さんへ 早い回答ありがとうございます。 確認したところXML WebServiceの利用を していました。 (あと文字ミスSOAPスイマセン) 具体的に設定が乗っているWEBページなどが あるのなら教えていただけませんか? 他、設定ファイルなど存在しているんでしょうか? できれば、検索キーワードを教えていただきたいです。 「そんなに聞くな!」と言うくらい 聞いてすみません。 あとは出来るだけ自力で調べます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Cとjavaの違い

    学校でC言語プログラミングを学んでおり,新たにjavaも習うことになったのですが, C言語とjava言語の違いはどのような所なのでしょうか? java言語は「オブジェクト指向」ですが,C言語は何指向なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • C#とjavaのstatic

    public static Final int a = 1; というjavaのプログラムをC#で public static const int a = 1; に書き換えたらstaticは無理というエラーがでました。 C#とjavaの比較の説明サイトを2・3見たのですが、よく意味がわかりませんでした。 なぜC#ではstaticにできないのでしょうか?

  • Java6の環境変数の値

    Windows 8 です。 Windows x64の jdk-6u45-windows-x64をダウンロードしてJavaを使っていましたが、 ある時Tomcatのパスの設定時Javaのパスを消してしまい、Javaのコンパイルが 出来なくなりました。 以下のエラーが出てます。 'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 環境変数としては 変数名 PATH 値 C:\Program Files\Java\jdkjdk1.6.0_45\bin; あるいは C:\Program Files\Java\jdkjdk1.6.0_45\bin;%JAVA_HOME%\bin; と試しましたが、間違えていますでしょうか?

    • ベストアンサー
    • Java
  • C#.NET2005 DllへのWebコントロール渡しについて

    初めまして、towatowatoです。 C#.NET2005(ASP.NET)の開発を行っています。 構成としては下記のようにして開発しています。 ----------------------------------------------- <ソリューション>   --[Webプロジェクト]     |     --Web画面   --[クラスライブラリプロジェクト]     |     --Web画面用ビジネスロジック     |     --Web画面用データロジック ----------------------------------------------- Webプロジェクト側でクラスライブラリプロジェクトで 作成されたDLL参照をして、呼び出ししています。 しかし画面コントロールをビジネスロジックに渡そうにも 下記エラーが表示されます。 ------------------------------------------------------------- 'System.Web.UI.WebControls.WebControl' が参照されていないアセンブリで定義されています。 アセンブリ 'System.Web, ersion=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' への参照を追加してください。 ------------------------------------------------------------- ビジネスロジッククラス側で ”using System.Web.UI”としても認識致しません。 どのようにすればいいのでしょうか? 初歩的な質問かもしれませんが、 何卒ご教授のほどよろしくお願いします。

  • PHPの次に学ぶとしたらJavaそれともC#?

    Javaは企業の多くが採用されていることから、解説書が数多く出回っているでしょう。オブジェクト指向やアルゴリズムの概念、サンプルコードなどの解説書のほとんどがJavaを占めるでしょう。しかし、C#はそのような解説書が少ないため、オブジェクト指向やアルゴリズムの概念を掴みにくいではないでしょうか。解説書の少なさからC#は学びにくいかと思います(C#言語自体は簡単かも知れませんが…)。 しかし、Windowsアプリの開発はJavaよりC#の方が向いているかも知れません。動作が速いですし、.exeからインストールできるなどのメリットがあると考えています。逆にJavaはGUIの動作は遅いし、.exeからインストールすることも出来ず、個人ユーザの多くが利用してくれなさそうなイメージがあると思います。 将来的にWindowsアプリとサーバサイド、Webでアプリとして動作するアプレットなど開発のしやすさの点から考えればJavaよりC#の方が需要があると思いますし、C#を採用していく企業も増えていくではないかという見方もあります。以上、私の解釈となりますが、どう思いますでしょうか。 また、PHPを学んだ私にとって第二言語はJavaそれともC#のどちらを学んだ方が良いでしょうか。個人的の趣味では企業向けのJavaよりC#の方が実用的ではないかと思います。皆様のご意見もお聞かせください。

    • ベストアンサー
    • Java
  • C#で、C言語で作ったdllに文字列の参照渡し

    Cで int test(char* moji) {   moji = "test";   return 0; } のようなdllを作り、C#側から   test(ref cs_moji); としても変数cs_mojiに"test"という文字列は帰ってきませんでした。 数時間調べたりしてcs_mojiの型をstringやStringBuilder等としたのですが、どれもうまくいきませんでした。 ポインタのポインタを利用したときは文字列は帰ってきたものの文字化けがたくさんしていて理想とはかけ離れていました。 どのようにしたらCのdllからC#に文字列を送ることができるでしょうか。 初歩的な質問かもしれないですがよろしくお願いいたします。

  • [JAVA]evalで文字列を計算式に!

    こんにちわぁ♪ Javascriptに「eval」というコマンドがあると思います。 これは、文字列を計算式として変換するものです。 例えば String SHIKI = "A + B" という文字列があり、evalを使ってやると その時点で文字列ではなくなり、 普通に、 A=3; B=4; String C = eval(SHIKI); と計算式にすることができます(使い方がちがうかもしれませんが)。 しかし、JAVAスクリプトではあるこのコマンドが JAVAでは見つかりません。 これと同等のコマンド、JAVAにありますか?

    • ベストアンサー
    • Java
  • Java・Cobolの連携方法

    JavaからCobolを起動させようとしています。 Java側のロジックについていろいろ調べていますが方法 が見つからず悩んでいます。 唯一、以下のURLの情報が参考になると思ったのですが、 必要なJarファイルがどうしても見つかりません。 参考にしたURL http://www.microfocus.co.jp/manuals/NE/books/JavaAddPack/opjaco.htm みつからないJarファイル mfcobol.jar 他の連携方法、またはmfcobol.jarの入手方法をご存知でしたら、どうかよろしくお願いします (__)

  • JavaからCにソケット通信で文字列を送りたいのですが、

    JavaからCにソケット通信で文字列を送りたいのですが、 Java側で Socket socket = new Socket("localhost", 7000); のところで Connection refused: connect のエラーが出ています。 C側は接続待ちの状態になっているのですが、 これはどうしたら回避できるのでしょうか?

  • javaからexeの起動、値渡し(?)について。

    1. 短縮したソースで申し訳ないのですが、JavaからC++で作成したexeファイルの、 int secに、javaでexe起動時に任意の数値を渡したいのですが、 何か良い方法はありますでしょうか? 2. またJavaで、外部ファイルを起動した時に、例えばFirefox等の場合、 自身の設定や、お気に入りが全くない状態で起動するのは何故でしょうか? 回答いただければと思います。どうぞよろしくお願いいたします。 [java] ProcessBuilder pb=new ProcessBuilder("C:\\Users\\Super\\Desktop\\cplus.exe", "30"); try { Process p=pb.start(); int ret=p.waitFor(); System.out.println("process exited with value : " + ret); } catch (IOException ioe) { } catch (InterruptedException inte) { } [C++ win32api] #include <windows.h> int main() { int sec=0; HANDLE hTimer; BOOL ret=FALSE; DWORD err=0; //以下はタイマー作成 }

    • ベストアンサー
    • Java
内周部と外周部の意味とは?
このQ&Aのポイント
  • 内周部とは、物の境の内側の部分を指します。
  • 外周部とは、物の周(境)の外側の部分を指します。
  • 四角い板や波線で囲まれた面でも、それらの縁や内側の部分を外周部と呼ぶことがあります。
回答を見る