Como consumir um webservices java com cliente em PHP

19/11/2017

0

Alô pessoal, sou iniciante em consumo de webservice, preciso consumir webservices desenvolvido em Java e preciso efetuar um cadastro, não estou conseguindo enviar meu formulário PHP para cadastrar usando um método do webservice desenvolvido em java. Alguém pode me ajudar?

segue meu webservice:

<!--
Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e.
-->
<!--
Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e.
-->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.uninove.br/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.uninove.br/" name="CursoWSService">
<types>
<xsd:schema>
<xsd:import namespace="http://ws.uninove.br/" schemaLocation="http://localhost:8080/cursows?xsd=1"/>
</xsd:schema>
</types>
<message name="listarTodosOsCursoss">
<part name="parameters" element="tns:listarTodosOsCursoss"/>
</message>
<message name="listarTodosOsCursossResponse">
<part name="parameters" element="tns:listarTodosOsCursossResponse"/>
</message>
<message name="cadastrarCurso">
<part name="parameters" element="tns:cadastrarCurso"/>
</message>
<message name="cadastrarCursoResponse">
<part name="parameters" element="tns:cadastrarCursoResponse"/>
</message>
<portType name="CursoWS">
<operation name="listarTodosOsCursoss">
<input wsam:Action="http://ws.uninove.br/CursoWS/listarTodosOsCursossRequest" message="tns:listarTodosOsCursoss"/>
<output wsam:Action="http://ws.uninove.br/CursoWS/listarTodosOsCursossResponse" message="tns:listarTodosOsCursossResponse"/>
</operation>
<operation name="cadastrarCurso">
<input wsam:Action="http://ws.uninove.br/CursoWS/cadastrarCursoRequest" message="tns:cadastrarCurso"/>
<output wsam:Action="http://ws.uninove.br/CursoWS/cadastrarCursoResponse" message="tns:cadastrarCursoResponse"/>
</operation>
</portType>
<binding name="CursoWSPortBinding" type="tns:CursoWS">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="listarTodosOsCursoss">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="cadastrarCurso">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="CursoWSService">
<port name="CursoWSPort" binding="tns:CursoWSPortBinding">
<soap:address location="http://localhost:8080/cursows"/>
</port>
</service>
</definitions>


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

preciso enviar o cadastro no método 'cadastrarCurso'

----------------------------------------------
Usando o SoapUI 5.3.0 funciona normal a inclusão no banco. *O campo "codigo" no banco é auto-incremento

SOAPUI 5.3.0:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.uninove.br/">
<soapenv:Header/>
<soapenv:Body>
<ws:cadastrarCurso>
<!--Optional:-->
<arg0>
<cargaHoraria>8000</cargaHoraria>
<codigo>4454</codigo>
<!--Optional:-->
<nomeCurso>minicursoJAVA5</nomeCurso>
<!--Optional:-->
<professor>NILSONJAVA5</professor>
</arg0>
</ws:cadastrarCurso>
</soapenv:Body>
</soapenv:Envelope>

====================================
Meu código PHP:

formulario HTML

<!DOCTYPE html>
<html>
<head>
<title>Projeto Teste</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="estilo.css">
</head>
<body>
<div class="container">
<div>
<h3>CADASTRAR NOVO CURSO</h3>
<hr>

<form action="gravaws_soapCall.php" method="POST">
<fieldSet>
<legend>Dados do CURSO</legend>
<label for="cargaHoraria">cargaHoraria:</label>
<input type="text" id="cargaHoraria" name="cargaHoraria">

<label for="nomeCurso">nomeCurso:</label>
<input type="text" id="nomeCurso" name="nomeCurso">

<label for="professor">professor:</label>
<input type="text" id="professor" name="professor">



<input type="submit" value = "Gravar">
</fieldSet>
</form>
</div>
</div>

</body>
</html>

===========================================
gravaws_soapCall.php
===========================================
<?php
$client = new soapclient('http://localhost:8080/cursows?wsdl');
$arguments= array('curso' => array(
'cargaHoraria' => $_POST['cargaHoraria'],
'codigo' => 00,
'nomeCurso' => "'".$_POST['nomeCurso']."'",
'professor' => "'".$_POST['professor']."'"
));

try {
echo "<pre>

";

$resposta = $client->cadastrarCurso($arguments);
var_dump($resposta);

} catch (Exception $error_string) {
$resposta = $error_string->getMessage();
}


print_r($resposta);
echo "</pre>

";
?>

=============================
retorno:

java.lang.NullPointerException
Edinilson Santos

Edinilson Santos

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar