Mirth 自定义 Web 服务

Mirth custom web service

我在 Java 中创建了一个自定义 Web 服务,就像 on the Mirth wiki

中描述的那样

Web 服务中定义的方法很少class,但我不知道如何配置 Mirth 来监听单个 Web 服务的不同方法。有没有关于这个问题的教程?如何为不同的方法定义不同的输入和输出数据?

您可以在扩展 AcceptMessage 的 class 中使用 @javax.jws.WebMethod@javax.jws.WebParam 注释,您的 return 值可以是任何 class,您已将其适当地装饰为 XML。类似于:

package mypackage.myservices;

import javax.jws.WebParam;
import javax.jws.WebService;

import com.mirth.connect.connectors.ws.AcceptMessage;
import com.mirth.connect.connectors.ws.WebServiceReceiver;

@WebService
public class QueryService extends AcceptMessage {

    public QueryService(WebServiceReceiver webServiceReceiver) {
        super(webServiceReceiver);
    }

    @WebMethod(action="Authenticate")
    public AuthResponse authenticate(@WebParam(name="Username") String username, 
        @WebParam(name="Password") String password) {
        //authenticate your user and return an AuthResponse, 
        //possibly containing a token for use in subsequent calls...

        return new AuthResponse();
    }

    @WebMethod(action="GetResponse")
    public QueryResponse getResponse(@WebParam(name="QueryObject") Query query) {
        //handle the Query object, use it to get data from a DB, or whatever

        return new QueryResponse(); // or an appropriate Response object
    }
}

您的 AuthResponseQueryQueryResponse 对象可以是您喜欢的任何适当装饰(带有 java.xml.bind.annotation...)的对象。然后,您的方法将在 WSDL 中进行描述(Mirth 在连接器中为您提供了地址),因此第三方可以使用您的服务。