我有一个肥皂网服务,目前运行正常。
我需要编写一个REST API,它将在内部调用soap服务。
任何人都可以建议,如何实现这一点。
在Soap服务中,我写了restcontroller
代码是这样的
@RestController
public class MyController {
@RequestMapping(value = "/restCheck", method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<MyResponse<RestCheckResponse>> restCheck(HttpServletRequest request) {
..................
..................
System.out.print("Inside the service...");
....................
return new ResponseEntity<>(MyResponse, org.springframework.http.HttpStatus.OK);
}
}
但是当我在运行服务器后尝试从邮递员中点击/restCheck
时。
我被重定向到肥皂服务提供结果的位置。
Response is something like this on postman.
<html>
<head>
<title>
Web Services
</title>
</head>
<body>
<h1>Web Services</h1>
<table width='100%' border='1'>
<tr>
<td>
Endpoint
</td>
<td>
Information
</td>
</tr>
<tr>
<td>
<table border="0">
<tr>
<td>Service Name:</td>
<td>{http://impl.service.abc.com/}AbcServiceImpl</td>
</tr>
<tr>
<td>Port Name:</td>
<td>{http://impl.service.abc.paytm.com/}AbcServiceImplPort</td>
</tr>
</table>
</td>
<td>
<table border="0">
<tr>
<td>Address:</td>
<td>http://127.0.0.1:80/abc/services</td>
</tr>
<tr>
<td>WSDL:</td>
<td>
<a href="http://127.0.0.1:80/abc/services?wsdl">http://127.0.0.1:80/abc/services?wsdl</a>
</td>
</tr>
<tr>
<td>Implementation class:</td>
<td>com.abc.xyz.service.impl.AbcServiceImpl</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
我点击postman的网址是http://localhost:8080/abc/services/restCheck
。
注意:当我尝试在eclipse中以调试模式运行服务并在第一行函数中添加一个print语句时,它不会打印该行,但它显示{{ 1}}
注意:我点击postman的网址是[Fatal Error] :1:1: Premature end of file.
。它给出了上述响应。当我用任何其他随机字母替换http://localhost:8080/abc/services/restCheck
时。它产生了相同的结果。所以,基本上在我的理解中它不是那个网址。它基本上是发布soap web服务。
无法理解我缺少的东西。
答案 0 :(得分:0)
您正在从REST Service Wrapper获取WSDL页面,这是完全正确的。您需要在restCheck()方法中执行的操作是形成一个HTTP请求来调用SOAP端点,从该端点获取响应并将其发回。