JAVA Web Service with SOAP Client Objective C---响应问题
我在 Java 中有这个 Web 服务:
@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];
}
}
}
并且我的控制台显示以下消息:
2
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>
输出正确,但我没有收到任何响应...
I have this web service in Java:
@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 + " !";
}
}
and this part in Objective C (after generate code with 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];
}
}
}
and my console show this messages:
2
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>
the output its correct but i dont recieve any response....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的服务器响应 HTTP 状态 404(未找到文件),这意味着客户端正在发布其对服务器未配置为响应的端点 (URL) 的 SOAP 请求。
例如,您的客户端可能会定向到
http://localhost:8080/foo
但服务器正在监听
http://localhost/bar
。检查客户端上的端点 URL 和服务器配置,以确保它正在侦听同一 URL。
Your server responds with HTTP status 404 (File Not Found), which means that the client is posting its SOAP request to an endpoint (URL) that the server isn't configured to respond to.
For example, your client might be directed at
http://localhost:8080/foo
but the server is listening at
http://localhost/bar
.Check the endpoint URL on your client and the server configuration to ensure it is listening at the same URL.