0

クラスコンストラクターに引数を渡そうとしていますが、成功していません。私は以下を試しました

PHP

$c = "site.wsdl";
$client = new SoapClient($c,array('classmap' => array('state' => "mystate",'county' =>  "mycounty")),array("trace"=> 1,"exceptions" => 1)); 

$client = new SoapClient($c,array('classmap' => array('state' => "mystate",'county' =>  "mycounty")));

$client = new SoapClient($c,array('state' => "mystate",'county'=>"mycounty"));

WebサービスコードJava

@WebService
public class MyWebservice{
 String test =  "";

/**
 * 
 * @param county
 * @param state
 */
public MyWebservice(@WebParam(name = "county") String county,
            @WebParam(name = "state") String state) {   

    test= county+"_"+state;
            //want to use this String elsewhere in the class
}

}

エラー

Fatal error: Uncaught SoapFault exception: [S:Server] com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class

コンストラクターからパラメーターを削除しても、soapクライアントの作成に問題はありません。

助けてくれてありがとう。

4

1 に答える 1

0

あなたはphpクラスにマップすることになっています(文字列に名前を付けることによって)。これは、パラメーターをリモートURIに転送するために使用されます。パラメーターを送信しようとする方法としてclassmapを使用している印象を受けます直接。そうでない場合は、mycountry および mystate クラスと wsdl ファイルを投稿してください。

クラスマップで SoapClient を使用する方法の非常に詳細な例は、このブログ投稿(私のものではありません) にあります。非常に明確であり、これが問題ではないことを確認するために、もう一度読んでみることをお勧めします。それが役に立てば幸い。:)

于 2012-06-08T01:04:06.720 に答える