メインコンテンツへスキップ

HTTPCall関数について

コメント

17件のコメント

  • ISHIJIMA

    httpsでも問題ないと思います。

  • yonex_gogogo

    ISHIJIMAさん、回答ありがとうございます。

    となると、こちらの環境設定の問題ですかね?

    お手数ですが、ISHIJIMAさんの環境ではhttps始まりのアドレスでもHTTPCall関数(GET)は正常に動作しますか?

  • ISHIJIMA

    あまり詳しくないのでわかりませんが上記URLで実行すると戻り値に何かしらのデータが戻ってくるので問題ないと思います。

    URLを書くと承認待機中で投稿できないのかな?

  • yonex_gogogo

    ISHIJIMAさん、回答ありがとうございます。

    こちらでは戻り値のBLOB型の内容にA=Ansi、U=Unicode、B=バイナリをそれぞれ指定して実行してみましたが、なにも返ってきませんでした。

    やはり環境のせいかもしれませんね。

  • tanda

    何かしらのデータが戻ってくるというのは、NULLが戻っているだけなのではないでしょうか。

  • 遠藤勇人

    お使いのバージョンは幾つですか?

    XPA3.1ですと、サイトによってはアクセスできない場合があります。

    今、ほとんどのサイトはTLS1.0/1.1は無効化され、TLS1.2以降でないとエラーになります。

    3.2のヘルプに下記の記載がありますので参考にしてください。

    (JAVAもオラクル版は有償なので、 AMAZONのJAVA8(Coretto)版をインストールしています)

    ↓↓↓↓↓

    Magic xpa 3.1 と Magic xpa 3.2の違い

    動作環境に、[HTTPフレームワーク]の設定が追加されました。HTTPxxx関数を使用する際に利用するHTTPライブラリとしてJavaを定義することができます。Javaを使用することで、TLS 1.2で拡張されたサポート機能を利用することができます。

  • tanda

    遠藤さん、いつも貴重な情報をありがとうございます。

  • ISHIJIMA

    そんなところに設定があるのですね・・

    勉強になりますね

  • tanda

    遠藤さん、ちなみに別のオプションである「.net」のほうは試されましたか?ASP.NETでいいのでしょうかね。

  • yonex_gogogo

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

    tandaさん
    戻り値として取得しているBLOB項目を適当に更新してからHTTPCallすると結果が空白になるので、おそらくNULLが返ってきているものと思われます。

    遠藤勇人さん
    使用しているバージョンは3.3d PT2です。
    私もこちらの情報にたどり着いて、Maigic.Iniを「HTTPFramework = S、D=DotNet、J=Java」に変えて実行してみましたが結果は変わりませんでした。
    ※JAVAについては、[MAGIC_JAVA]セクションにJava\jre1.8.0_241のパスが設定されていたのですが、これでいいのでしょうか?

  • ISHIJIMA

    >他のサイトでテストしたみたところいくつか動作するサイトがありました。

    ネットワーク環境で帰ってこないという事はないですか?(ファイアウオールとか)

    xpaではなく.net等で確認してできているURLであればxpaの問題なのでは?

     

     

  • 遠藤勇人

    yonex_gogogoさん、こんにちは

    >※JAVAについては、[MAGIC_JAVA]セクションにJava\jre1.8.0_241のパスが設定されていたのですが、

    >これでいいのでしょうか?

    -------------------------------

    INIへ記述だけではだめです。

    記述の通り、Javaがインストールされていないと........(^^;

    ちなみに、下記はAmazon Correttoをインストールした環境でのMAGIC.INです。

    [MAGIC_JAVA]
    JAVA_HOME=C:\Program Files (x86)\Amazon Corretto\jre8\bin\server

    JVM_PATH=C:\Program Files (x86)\Amazon Corretto\jre8\bin\server\jvm.dll

    CLASSPATH=.;Support\*;Support\Apache-httpcomponents-client\lib\*;GigaSpaces-xpa\lib\xpa\*;GigaSpaces-xpa\lib\SerializableUserDataClasses\*;GigaSpaces\lib\required\*;Gateways\*

    JVM_ARGS=-Djava.compiler=NONE -Xms16m -Xmx256m -Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser -Dcom.gigaspaces.logger.RollingFileHandler.filename-pattern={homedir}/../Logs/GS/{date,yyyy-MM-dd~HH.mm}-gigaspaces-{service}-{host}-{pid}.log -Dlog4j.configurationFile=%EngineDir%\GigaSpaces-xpa\config\log4j2.xml -Dcom.magicsoftware.xpa.home=%EngineDir% -Dcom.magicsoftware.xpa.logging.module=MgxpaRuntime_GS -Dcom.magicsoftware.xpa.ServerLoadOnDemandTimeout=10

     

     

    HAYATO@アインシュタイン設計社

     

     

  • yonex_gogogo

    ISHIJIMAさん
    > ネットワーク環境で帰ってこないという事はないですか?(ファイアウオールとか)
    xpaではなく.net等で確認してできているURLであればxpaの問題なのでは?
    ネットから.netのサンプルコードを拾ってきて、試行錯誤してMagicに展開してみました。
    System.Net.Http.HttpClient()を使うようですが、こちらでは正常に動作しました。
    やはりxpaの問題なのかもしれません。

    遠藤勇人さん
    > INIへ記述だけではだめです。
    すいません、説明していませんでしたがJavaはインストールされています。

    私の環境のMagic.iniです。
    [MAGIC_ENV]
    HTTPFramework = J

    [MAGIC_JAVA]
    JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_241
    JVM_PATH=C:\Program Files (x86)\Java\jre1.8.0_241\bin\client\jvm.dll
    CLASSPATH=.;Support\*;Support\Apache-httpcomponents-client\lib\*;GigaSpaces-xpa\lib\xpa\*;GigaSpaces-xpa\lib\SerializableUserDataClasses\*;GigaSpaces\lib\required\*;Gateways\*
    JVM_ARGS=-Djava.compiler=NONE -Xms16m -Xmx256m -Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser -Dcom.gigaspaces.logger.RollingFileHandler.filename-pattern={homedir}/../Logs/GS/{date,yyyy-MM-dd~HH.mm}-gigaspaces-{service}-{host}-{pid}.log -Dlog4j.configurationFile=%EngineDir%\GigaSpaces-xpa\config\log4j2.xml -Dcom.magicsoftware.xpa.home=%EngineDir% -Dcom.magicsoftware.xpa.logging.module=MgxpaRuntime_GS -Dcom.magicsoftware.xpa.ServerLoadOnDemandTimeout=10
    ; -Dcom.magicsoftware.xpa.DefaultErrorFormatFileName=%EngineDir%\GigaSpaces-xpa\test\DefaultError.html

    JAVA_HOMEとJVM_PATHに記述されていたフォルダとファイルは存在することは確認しました。
    しかし、上記の設定でHTTPCallを動かしてみたところ、アクティビティモニター上でJavaのエラーが出力されていたのでこれが問題のようですね。
    Javaについて全然知らないので、エラーが出ているなということしかわかりませんが…

    アクティビティモニターのエラー内容
    -1 17:44:50.912 Error HttpJavaWrapper::ExecuteRequest - "java.net.UnknownHostException: www.Google.com
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(Unknown Source)
    at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
    at java.net.InetAddress.getAllByName0(Unknown Source)
    at java.net.InetAddress.getAllByName(Unknown Source)
    at java.net.InetAddress.getAllByName(Unknown Source)
    at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:111)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
    at com.magicsoftware.xpa.utils.http.HttpClient.execute(HttpClient.java:179)
    ", Program: "EL23_HTTPCall".

  • ISHIJIMA

    3.2PT1で実験していますが[HTTPフレームワーク]は設定していないので空白になっています。

    デフォルトはD=DotNetなのでJ=Javaでなくてもこちらでは問題なく動いています。

  • 遠藤勇人

    >JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_241

    --------------------------------------------------------------------------

    32bit版のJavaをインストールされていますが、実行時のエンジンが64bitで

    動かされているということはないですか?

    magic.iniの

    64BitEngine = y

    64BitEngineForStudio = Y

    の箇所です。

    HAYATO@アインシュタイン設計社

     

     

  • yonex_gogogo

    解決したので報告です。

    原因は社内インターネット接続環境にプロキシサーバーを使用していたためでした。
    Magic.iniにHTTPProxyAddressを設定したところ、正常に動作するようになりました。

    [MAGIC_ENV]
    HTTPFramework = S(Dでも可)
    HTTPProxyAddress = xx.xx.xx.xx:8080

    ISHIJIMAさん、遠藤勇人さん、お騒がせして申し訳ありませんでした。
    設定前に.netのサンプルコードだけ正常実行ができたのは、Windowsの設定を優先しているからなのかもしれません。

  • ISHIJIMA

    プロキシサーバーがある場合はそこを設定しないといけないのですね

    難しいですね・・

サインインしてコメントを残してください。