मैं जावा में किसी भी सोप पुस्तकालयों इस्तेमाल नहीं किया है को देखते हुए बनाया जा रहा है, इसलिए मैं इस सवाल का newby सत्ता के लिए हमें खेद है।जावा में एक सोप ग्राहक WSDL फ़ाइल
मैं टिवोली Endpoint प्रबंधक के सोप API का लाभ लेने की कोशिश कर रहा हूँ। मैंने wsimport.exe (जेडीके में प्रदान किया गया) का उपयोग करके प्रदान की गई WSDL फ़ाइल से आवश्यक कक्षाएं उत्पन्न की हैं।
अब मैं वर्गों है कि मैं xml प्रारूप में जानकारी पैकेजिंग कर रहे हैं मान की एक टन के साथ प्रदान की हूँ, लेकिन मैं उन लोगों के साथ क्या करना है अनिश्चित हूं। मैंने प्रदान किए गए दस्तावेज को पढ़ा है, लेकिन यह सबसे अच्छा है।
wsimport द्वारा उत्पन्न वर्गोंनिम्नलिखित हैं:
प्रलेखन के अनुसार, निम्नलिखित पर्ल कोड टिवोली के एपीआई
use SOAP::Lite;
#arguments: [hostname] [username] [password] [relevance expression]
#hostname only, e.g. ’example.com’ rather than ’http://example.com/webreports’
my $host = $ARGV[0];
my $username = SOAP::Data->name(’username’ => $ARGV[1]);
my $password = SOAP::Data->name(’password’ => $ARGV[2]);
my $expr = SOAP::Data->name(’relevanceExpr’ => $ARGV[3]);
my $service = SOAP::Lite -> uri(’http://’ . $host . ’/webreports?wsdl’)
-> proxy($host);
my $result = $service -> GetRelevanceResult($expr, $username, $password);
if($result->fault) {
print "faultcode: " . $result->faultcode . "\n";
print "faultstring: " . $result->faultstring . "\n";
}
else {
foreach my $answer ($result->valueof("//GetRelevanceResultResponse/a")) {
print $answer . "\n";
}
}
प्रश्न क्वेरी करने के लिए काम करता है: क्या हैं जावा में समकक्ष एसओएपी ग्राहक पुस्तकालय? (जिन लोगों को मैंने गुमराह किया है वे बहुत भारी हैं 15 एमबी +)
मैं उपरोक्त पर्ल के लिए समकक्ष जावा स्टब कोड कैसे लिखूं?
संपादित करें 1
यहाँ स्टब कोड है मैं WebReportsService.java वर्ग पाया लगता है
package connect.tivoli;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.WebServiceFeature;
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.2.4-b01
* Generated source version: 2.2
*
*/
@WebServiceClient(name = "WebReportsService", targetNamespace = "http://schemas.bigfix.com/Relevance", wsdlLocation = "http://temwebreports/webreports?wsdl")
public class WebReportsService
extends Service
{
private final static URL WEBREPORTSSERVICE_WSDL_LOCATION;
private final static WebServiceException WEBREPORTSSERVICE_EXCEPTION;
private final static QName WEBREPORTSSERVICE_QNAME = new QName("http://schemas.bigfix.com/Relevance", "WebReportsService");
static {
URL url = null;
WebServiceException e = null;
try {
url = new URL("http://temwebreports/webreports?wsdl");
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}
WEBREPORTSSERVICE_WSDL_LOCATION = url;
WEBREPORTSSERVICE_EXCEPTION = e;
}
public WebReportsService() {
super(__getWsdlLocation(), WEBREPORTSSERVICE_QNAME);
}
public WebReportsService(WebServiceFeature... features) {
super(__getWsdlLocation(), WEBREPORTSSERVICE_QNAME, features);
}
public WebReportsService(URL wsdlLocation) {
super(wsdlLocation, WEBREPORTSSERVICE_QNAME);
}
public WebReportsService(URL wsdlLocation, WebServiceFeature... features) {
super(wsdlLocation, WEBREPORTSSERVICE_QNAME, features);
}
public WebReportsService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}
public WebReportsService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) {
super(wsdlLocation, serviceName, features);
}
/**
*
* @return
* returns RelevancePortType
*/
@WebEndpoint(name = "RelevancePort")
public RelevancePortType getRelevancePort() {
return super.getPort(new QName("http://schemas.bigfix.com/Relevance", "RelevancePort"), RelevancePortType.class);
}
/**
*
* @param features
* A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
* @return
* returns RelevancePortType
*/
@WebEndpoint(name = "RelevancePort")
public RelevancePortType getRelevancePort(WebServiceFeature... features) {
return super.getPort(new QName("http://schemas.bigfix.com/Relevance", "RelevancePort"), RelevancePortType.class, features);
}
/**
*
* @return
* returns UserManagementPortType
*/
@WebEndpoint(name = "UserManagementPort")
public UserManagementPortType getUserManagementPort() {
return super.getPort(new QName("http://schemas.bigfix.com/Relevance", "UserManagementPort"), UserManagementPortType.class);
}
/**
*
* @param features
* A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
* @return
* returns UserManagementPortType
*/
@WebEndpoint(name = "UserManagementPort")
public UserManagementPortType getUserManagementPort(WebServiceFeature... features) {
return super.getPort(new QName("http://schemas.bigfix.com/Relevance", "UserManagementPort"), UserManagementPortType.class, features);
}
/**
*
* @return
* returns DashboardVariablePortType
*/
@WebEndpoint(name = "DashboardVariablePort")
public DashboardVariablePortType getDashboardVariablePort() {
return super.getPort(new QName("http://schemas.bigfix.com/Relevance", "DashboardVariablePort"), DashboardVariablePortType.class);
}
/**
*
* @param features
* A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
* @return
* returns DashboardVariablePortType
*/
@WebEndpoint(name = "DashboardVariablePort")
public DashboardVariablePortType getDashboardVariablePort(WebServiceFeature... features) {
return super.getPort(new QName("http://schemas.bigfix.com/Relevance", "DashboardVariablePort"), DashboardVariablePortType.class, features);
}
private static URL __getWsdlLocation() {
if (WEBREPORTSSERVICE_EXCEPTION!= null) {
throw WEBREPORTSSERVICE_EXCEPTION;
}
return WEBREPORTSSERVICE_WSDL_LOCATION;
}
}
समाधान:
यह मैं तुलना में बहुत सरल था सोचा डब्ल्यूएसडीएल पीढ़ी ने सभी काम किया। यहां बताया गया है कि आप उन जेनरेट किए गए वर्गों का उपयोग कैसे करते हैं।
पैकेज connect.tivoli;
public class testMain {
public static void main(String[] args) {
String relevanceQuery ="names of bes computers ";
WebReportsService wr = new WebReportsService();
RelevancePortType client;
client = wr.getPort(RelevancePortType.class);
System.out.println(client.getRelevanceResult(relevanceQuery, "ad\\username", "password"));
}
आपको पोर्ट प्रोम मिलना चाहिए आपकी सेवा 'वर्ग (WebReportsService मुझे लगता है कि) getPort का उपयोग कर() विधि, फिर जब आप पोर्ट मिल (जैसे अंतिम बिंदु) कार्यान्वयन वस्तु आपको कॉल कर सकते जाएगा किसी भी वेब सेवा एंडपॉइंट विधियों। आवश्यक वस्तुओं को बनाने के लिए ऑब्जेक्ट फैक्ट्री का प्रयोग करें। लोकप्रिय ग्राहक पुस्तकालय जेएक्स-डब्ल्यूएस (जेआरई 6 + में शामिल हैं) या सीएक्सएफ (अपाचे से) हैं। –
मुझे जावा में एक हल्के SOAP क्लाइंट के बारे में सुनना अच्छा लगेगा। अपाचे सीएक्सएफ वह है जो हम उपयोग करते हैं, और यह कुल ब्लूटवेयर है। – dnault
क्या आपने देखा है? –
deepakborania