在soap Web服务中编写Rest API

时间:2018-05-04 07:02:49

标签: java rest soap postman

我有一个肥皂网服务,目前运行正常。

我需要编写一个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服务。

无法理解我缺少的东西。

1 个答案:

答案 0 :(得分:0)

您正在从REST Service Wrapper获取WSDL页面,这是完全正确的。您需要在restCheck()方法中执行的操作是形成一个HTTP请求来调用SOAP端点,从该端点获取响应并将其发回。