我试着整天解决这个问题,我不明白。 我试图在Web服务中创建一个新的Web模块。我使用NetBeans和GlassFish。当我使用测试服务测试web方法时,它可以工作。但是当我尝试从php客户端调用它时,我不能。 已经有另一个运行良好的Web模块,我可以从客户端调用它们。一旦我改名,我就不能再打电话给他们了。 我不知道。 谢谢你回答。
php使用者
<?php
session_start();
function affiche()
{
$UEopt = new SoapClient("localhost:8080/UEOptionnelles/UEoptWebService?wsdl");
$result = $UEopt->listSemestre(array(
"Nom" => ""
)); // On affiche le resultat de l'appel du web service
for ($i = 0; $i < count($result->return) / 5; $i++)
{
echo "<pre>";
echo "\n <u>Nom</u> : ";
print_r($result->return[1 + ($i * 5) ]);
echo " - <u>Parcours</u> : ";
print_r($result->return[2 + ($i * 5) ]);
echo " - <u>Année</u> : ";
print_r($result->return[3 + ($i * 5) ]);
echo "</pre>";
}
}
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="w3.org/2001/XMLSchema-instance" xsi:schemaLocation="xmlns.jcp.org/xml/ns/javaee xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
java服务定义
/**
* Méthode listUE
*/
@WebMethod(operationName = "listUEParEtu")
public List listUEParEtu(@WebParam(name = "Nom") Integer NumEtu) {
// chargement du driver SqLite
try {
Class.forName("org.sqlite.JDBC");
System.out.println(" driver SqLite ok");
} catch (ClassNotFoundException e) {
System.out.println("Impossible de charger le driver SqLite.");
}
try
{
// chargement de la base
String chemin=this.getClass().getResource("/NetBeans.db").getPath();
System.out.println(chemin);
Connection connection2=DriverManager.getConnection("jdbc:sqlite:"+chemin);
//String requete = "SELECT * FROM UE "
// +"WHERE NomUE like '%"+NumEtu+"%';";
String requete = "SELECT * FROM Choix "
+ "WHERE Choix.idUtilisateur='"+ NumEtu +"' ;";
Statement statement2= connection2.createStatement();
ResultSet executeQuery=statement2.executeQuery(requete);