我在Java中,這Web服務:JAVA的Web Service與SOAP客戶端目標C ---響應問題
@WebService(serviceName = "Catalogo_V1")
public class Catalogo_V1 {
/** This is a sample web service operation */
@WebMethod(operationName = "hello")
public String hello(@WebParam(name = "name") String txt)
{
return "Hello " + txt + " !";
}
}
,這部分在Objective C(後生成WSDL2ObjC代碼):
- (IBAction)buttonPressed:(id)sender
{
Catalogo_V1PortBinding *binding = [[Catalogo_V1Svc Catalogo_V1PortBinding] initWithAddress:@"http://localhost:8080/WSServer/Catalogo_V1.wsdl"];
binding.logXMLInOut = YES; // to get logging to the console.
Catalogo_V1Svc_hello *r = [[Catalogo_V1Svc_hello alloc] init];
//NSLog(@"request: %@",r);
[r setName:i.text];
//NSLog(@"string: %@ ",i.text);
Catalogo_V1PortBindingResponse *resp = [binding helloUsingParameters:(Catalogo_V1Svc_hello *)r];
NSLog(@"response: %@",resp);
for (id mine in resp.bodyParts)
{
if ([mine isKindOfClass:[Catalogo_V1Svc_helloResponse class]])
{
//lab.text = [mine Catalogo_V1Svc_helloResponse];
}
}
}
和我的控制檯顯示此消息:
011-08-30 17:00:11.572 Catalogo-V1[3876:207] OutputHeaders:
{
"Content-Length" = 451;
"Content-Type" = "text/xml; charset=utf-8";
Host = localhost;
Soapaction = "";
"User-Agent" = wsdl2objc;
}
2011-08-30 17:00:11.572 Catalogo-V1[3876:207] OutputBody:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:Catalogo_V1Svc="http://org/" xsl:version="1.0">
<soap:Body>
<Catalogo_V1Svc:hello>
<Catalogo_V1Svc:name>ddddddd</Catalogo_V1Svc:name>
</Catalogo_V1Svc:hello>
</soap:Body>
</soap:Envelope>
2011-08-30 17:00:11.593 Catalogo-V1[3876:207] Response HTTP:
<NSHTTPURLResponse: 0x5b1ffd0>
2011-08-30 17:00:11.593 Catalogo-V1[3876:207] ResponseStatus: 404
2011-08-30 17:00:11.593 Catalogo-V1[3876:207] ResponseHeaders:
{
"Content-Length" = 1067;
"Content-Type" = "text/html";
Date = "Tue, 30 Aug 2011 15:00:11 GMT";
Server = "GlassFish Server Open Source Edition 3.1.1";
"X-Powered-By" = "Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.1 Java/Apple Inc./1.6)";
}
2011-08-30 17:00:11.617 Catalogo-V1[3876:207] ResponseError:
Error Domain=Catalogo_V1PortBindingResponseHTTP Code=404 "not found" UserInfo=0x5b2a320 {NSLocalizedDescription=not found}
2011-08-30 17:00:11.618 Catalogo-V1[3876:207] response: <Catalogo_V1PortBindingResponse: 0x5b25bd0>
輸出其正確的,但我不收到任何迴應....
錯誤404意味着您的客戶端沒有正確響應。 – paulsm4
好的,問題出在客戶端,但是哪裏? – Davidin073