У меня есть работающий веб-сервис (использующий EclipseLink в качестве поставщика JPA), и я хотел бы вызвать методы, которые обновляют данные в базе данных из PHP с использованием SOAP.
Метод в веб-сервисе может выглядеть примерно так:
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
и отправить его в качестве параметра для Person. Я прав? Но я не могу работать с этими строками кода:
$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 (Person p) в приложении Java, но p не содержит данных, которые я ввел в PHP).