Java JAX-WS RI ile PHP SoapClient kullanma (Webservice)

1 Cevap java

Yeni bir proje için, biz JAX-WS RI kullanarak Java bir web servisi kurmak istiyorum, ve web hizmeti istemcisi için, biz PHP kullanmak istiyorum.

JAX-WS RI hakkında küçük bir öğretici olarak ben bu örnek web hizmeti bulundu:

package webservice;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public class Calculator {
    public long addValues(int val1, int val2) {
        return val1 + val2;
    }
}

ve web sunucusu için:

package webservice;

import javax.xml.ws.Endpoint;
import webservice.Calculator;

public class CalculatorServer {
    public static void main(String args[]) {
        Calculator server = new Calculator();
        Endpoint endpoint = Endpoint.publish("http://localhost:8080/calculator", server);
    }
}

Sunucu başlayan ve URL ile WDSL gezen "http://localhost:8080/calculator?wsdl" mükemmel çalışıyor. Ama PHP web servisini çağırmak başarısız olur.

Benim çok basit bir PHP çağrı şöyle:

$client = new SoapClient('http://localhost:8080/calculator?wsdl', array('trace' => 1));
echo 'Sum: '.$client->addValues(4, 5);

: "... Aşıldı 60 saniye Maksimum yürütme zamanı Ölümcül hata" veya bir "yakalanmamış SoapFault istisna: Ama sonra bir olsun ya [WSDL] SABUN-HATA: WSDL Ayrıştırma: den yüklenemedi 'http://localhost: 8080/calculator? wsdl '... "istisna.

Ben diğer web hizmetleri ile PHP SoapClient () test ettik ve herhangi bir sorun olmadan çalışır. PHP ile birlikte JAX-WS RI ile bilinen bir sorun var mı, ya da ben görmedim benim web hizmeti bir hata var mı?

I this bug report bulduk, ama bile PHP 5.3.2 için güncelleme sorunu çözmek değildi.

Herkes bana ne yapacağımı söyleyebilir? Ve arada, Windows 7 x64 üzerinde çalışan benim Java sürümü aşağıdaki gibidir:

java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

1 Cevap

Zaman aşımı varsa php düzgün WSDL URL çözmek mümkün değil gibi görünüyor. Eğer WSDL Url bir file_get_contents () / curl denediniz mi? Belki yerine localhost ve IP çağrı deneyin ve nasıl gidiyor bakın.