java在soapweb服务中编写restapi
我有一个soap web服务,目前运行良好
我需要编写一个RESTAPI,它将在内部调用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
时
我被重定向到soap服务给出结果的位置
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>
我在邮递员上找到的Url是http://localhost:8080/abc/services/restCheck
注意:当我尝试在eclipse中以调试模式运行服务,并在函数的第一行添加了一条print语句时,它并没有打印那一行,而是显示[Fatal Error] :1:1: Premature end of file.
注意:我在邮递员上找到的Url是http://localhost:8080/abc/services/restCheck
。它给出了上述答复。当我用任何其他随机字母替换/restCheck
时。它正在产生同样的结果。所以,基本上在我的理解中,它并没有击中那个url。它基本上是发布soapweb服务
无法理解我错过了什么
# 1 楼答案
您从REST服务包装器获得的WSDL页面是完全正确的。在restCheck()方法中需要做的是形成一个HTTP请求来调用SOAP端点,从该端点获取响应并将其发送回