有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您从REST服务包装器获得的WSDL页面是完全正确的。在restCheck()方法中需要做的是形成一个HTTP请求来调用SOAP端点,从该端点获取响应并将其发送回