我有一個正在運行的Web服務(使用EclipseLink作爲JPA提供程序),並且想要調用PHP中使用SOAP更新數據庫中數據的方法。
在Web服務的方法可以是這個樣子:如何使用SOAP將對象從PHP發送到Java Web服務?
public void updatePerson(Person p){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersonLib");
EntityManager em = emf.createEntityManager();
if(!em.getTransaction().isActive()) {
em.getTransaction().begin();
}
em.merge(p);
em.getTransaction().commit();
}
從PHP,我想我必須創建stdClass
類型的對象,並把它作爲一個人的參數。我對嗎?但我不把它用幾行代碼的工作:
$client = new SoapClient("url.to.wsdl", array("trace" => 1));
$obj = new stdClass();
$obj->Person = new stdClass();
$obj->Person->personId = 1;
$obj->Person->name = "Peter";
$client->updatePerson($obj);
我不知道這是否是從PHP發送對象到Java的正確方法(當然,它會調用該方法的updatePerson(人p)在java應用程序中,但p不包含我在PHP中輸入的數據)。
你能告訴我們你的WSDL嗎?你也可能想要檢查'SoapClient'構造函數中使用''classmap''的例子[here](http://www.php.net/manual/en/soapclient.soapclient.php)。 – 2012-02-25 18:12:31