2013-09-08 3 views
2

Что было бы эквивалентом этого короткого PHP-кода в java?Как выполнять команды через SoapClient в JAVA

$client = new SoapClient(NULL, 
    array(
    "location" => "http://hostname:port/')", 
    "uri" => "urn:String", 
    "style" => SOAP_RPC, 
    'login' => "soapuser", 
    'password' => "soappass", 
) 
); 


$command = "This command will be sent to SOAP"; 
try { 
    $result = $client->executeCommand(new SoapParam($command, "command")); 
    return true; 
} 
catch (Exception $e) { 
    return false; 
} 

Можно ли достичь такого же результата с помощью короткого класса java?

+0

Взгляните на ресурсы, связанные с этим ответом: http://stackoverflow.com/a/16556532/1325237 - если вы перейдете в учебник DZone и перейдите к разделу WS Client, вы увидите объяснение того, что вам нужно сделать, чтобы иметь возможность вызвать службу, используя код, аналогичный тому, что у вас есть выше. – Alex

+0

дубликат http://stackoverflow.com/questions/15948927/working-soap-client-example –

+0

@ Bass Jobsen - я не нашел, как запустить этот executeCommand по ссылке, которую вы предоставили –

ответ

1

обновление 2 Я не понимаю ваш вопрос. (Не могли бы вы предоставить WDSL вашего Servive?) Для того, чтобы создать клиента как код PHP:

использование:

package com.mkyong.client; 

import java.net.URL; 
import javax.xml.namespace.QName; 
import javax.xml.ws.Service; 
import com.mkyong.ws.HelloWorld; 

public class HelloWorldClient{ 

    public static void main(String[] args) throws Exception { 

    URL url = new URL("http://localhost:9999/ws/hello?wsdl"); 

     //1st argument service URI, refer to wsdl document above 
    //2nd argument is service name, refer to wsdl document above 
     QName qname = new QName("http://ws.mkyong.com/", "HelloWorldImplService"); 

     Service service = Service.create(url, qname); 

     HelloWorld hello = service.getPort(HelloWorld.class); 

     System.out.println(hello.getHelloWorldAsString("mkyong")); 

    } 

} 

копию этого файла на ком/mkyong/клиента. Для того, чтобы скомпилировать использовать javac com/mkyong/client/HelloWorldClient.java и запустить использование java com/mkyong/client/HelloWorldClient, смотрите также: Compiling four java files within one package using javac и making a java package in the command line

«Подключенные» в вашем примере PHP http://localhost:9999/ws/hello?wsdl будет эквивалент http://hostname:port/ и executeCommand будет такой же, как hello.getHelloWorldAsString.

обновление попробовать JAX-WS (http://jax-ws.java.net/)

От http://www.mkyong.com/webservices/jax-ws/jax-ws-hello-world-example/:

package com.mkyong.ws; 

import javax.jws.WebMethod; 
import javax.jws.WebService; 
import javax.jws.soap.SOAPBinding; 
import javax.jws.soap.SOAPBinding.Style; 

//Service Endpoint Interface 
@WebService 
@SOAPBinding(style = Style.RPC) 
public interface HelloWorld{ 

    @WebMethod String getHelloWorldAsString(String name); 

} 

рядом с ответом здесь: Working Soap client example вы могли бы найти много учебников, которые говорят вам, как написать клиент мыло в Java :

+0

, к сожалению, я не смог узнайте, что делать с «uri» => «urn: String», 'и имя пользователя и пароль :( –

0

Я предполагаю, что вы ищете мыло клиент на основе Java для PHP мыльных служб. я имел аналогичное требование некоторое время назад и может найти ниже хороший учебник по тому же: http://development.nedeco.de/blog/2011/08/03/java-client-php-soapserver/

Также см бесплатно удобной книге http://www.ksi.edu/thesis/rhuang/rhuang.pdf

+0

нет, мне нужен тот же запрос, который я делаю в php, чтобы отправить его в java .. , –

0

Groovy является надмножеством Java, поэтому размещение огромной библиотеки, вы можете использовать в groovy и, вероятно, делать это точно в тех же строках кода, что и php. https://github.com/jwagenleitner/groovy-wslite

Смежные вопросы