dqyat62284 2015-10-28 03:42
浏览 119

如果使用php nusoap在WSDL中未定义操作,如何修复

I am currently working on a project that uses web service PHP Nusoap. I implement it at first in the local computer and it is already working perfectly fine, it can insert already in the database.Since, we are also deploying our project in the production server (Linux RHEL 4) so we also need to include the web service. In implementing this in the production server, we got this error :

Operation '' is not defined in the WSDL for this service

Here is the full details :

<?xml version="1.0" encoding="utf-8"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
    <faultcode xsi:type="xsd:string">SOAP-ENV:Client</faultcode>
    <faultactor xsi:type="xsd:string"></faultactor>
    <faultstring xsi:type="xsd:string">Operation &apos;&apos; is not defined in the WSDL for this service
    </faultstring>
    <detail xsi:type="xsd:string"></detail>
</SOAP-ENV:Fault>

HERE IS THE CODE :

client.php

<?php
    require_once('lib/nusoap.php');

    $data = json_decode(file_get_contents("php://input"), true);

    $file_name = $data['file_name'];
    $location = $data['location'];

    $client = new nusoap_client('http://servername:port/WebService/server.php?wsdl', true);

    if ($SERVER['REQUEST_METHOD'] == 'POST') {
        $err = $client->getError();

        if ($err) {
            echo "<h2> Constructor error </h2><pre>" . $err. "</pre>" ;
            echo "<h2> Debug </h2><pre>" . htmlspecialchars($client->getdebug(),        ENT_QUOTES) . "</pre>" ;
            exit();
        }

        $datas = array (
            'file_name' => $file_name,
            'location'   => $location
        );

        $result = $client->call('InsertData', $datas);

        if ($client->fault) {
            echo "<h2> Fault (Expect - The request contains an invalid SOAP Body)</h2> <pre>" ;
            print_r ($result);
            echo "</pre>";
        } else {
            $err = $client->getError ();
            if ($err) {
                echo "<h2> Error </h2><pre>" . $err.  "</pre>";
            } else {
                print_r ($result);
            }
        }
    } else if ($_SERVER['REQUEST_METHOD'] != 'POST') {
        echo "Method is not POST " ;
    }

?>

server.php

<?php 
require_once('lib.nusoap');

$server = new soap_server();
$server->configureWSDL('Database Sample Insertion', 'urn:Insert');
$server->soap_defenconding = 'UTF-8' ;

$server->register('InsertData', 
    array (
        'file_name'  => 'xsd:file_name',
        'location'    => 'xsd:location'
    ),
    array ('return' => 'xsd:string'),
    'urn:Insert',
    'urn:Insertwsdl#InsertDate',
    'rpc',
    'literal'
);

function InsertData ($file_name, $location) {
    $db_host = 'localhost';
    $db_username = 'username';
    $db_password = '' ;
    $db_name = 'sample' ;

    $conn = new mysqli ($db_host, $db_username, $db_password, $db_name);

    if ($conn->connect_error) {
        trigger_error('Database connection failed : ' .$conn->connect_error , E_USER_ERROR);
    }

    $sql = "INSERT INTO transaction (`filename`, `location`) VALUES ('$file_name', '$location')";

    $query = $conn->query($sql);

}

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '' ;
    $server->service($HTTP_RAW_POST_DATA);


?>

what does this problem means and how can we solve this? Or how to setup the web service PHP Nusoap in the production server? Any ideas/suggestions is appreciated. Thanks

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 求差集那个函数有问题,有无佬可以解决
    • ¥15 【提问】基于Invest的水源涵养
    • ¥20 微信网友居然可以通过vx号找到我绑的手机号
    • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
    • ¥15 解riccati方程组
    • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
    • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
    • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
    • ¥50 树莓派安卓APK系统签名
    • ¥65 汇编语言除法溢出问题