如何使用ExecutorService调用webservice
How to call webservice using ExecutorService
我想知道在 java 应用程序中使用 ExecutorService 使用 web 服务的正确方法,我想 web 服务调用应该是并行和队列的,但我不知道如何去做。
ExecutorService 与网络服务无关。 ExecutorService 仅调度任务并执行它们。在您的情况下,您提交的任务将使用某个网络服务,但它可能是做一些计算之类的事情。就像评论中建议的那样,您可以使用 java.net.URL、javax.xml.ws.Service 或任何其他 API。
假设您有一个 ExecutorService:
final ExecutorService executorService = constructAnAppropriateExecutorService();
做这样的事情?
Future<Result> future = executorService.submit(new Callable<>() {
@Override
Result call() {
return performSynchronousWebServiceCall(...);
}
});
doSomethingElseForAWhile(...);
Result result = future.get();
这绝对和ExecutorService一点关系都没有。看起来 Java 无法访问 WSDL。您可以使用 curl 或任何网络浏览器访问给定的 URL 吗?
也许你应该考虑在一个单独的(更有意义的)问题中寻求帮助。
我想知道在 java 应用程序中使用 ExecutorService 使用 web 服务的正确方法,我想 web 服务调用应该是并行和队列的,但我不知道如何去做。
ExecutorService 与网络服务无关。 ExecutorService 仅调度任务并执行它们。在您的情况下,您提交的任务将使用某个网络服务,但它可能是做一些计算之类的事情。就像评论中建议的那样,您可以使用 java.net.URL、javax.xml.ws.Service 或任何其他 API。
假设您有一个 ExecutorService:
final ExecutorService executorService = constructAnAppropriateExecutorService();
做这样的事情?
Future<Result> future = executorService.submit(new Callable<>() {
@Override
Result call() {
return performSynchronousWebServiceCall(...);
}
});
doSomethingElseForAWhile(...);
Result result = future.get();
这绝对和ExecutorService一点关系都没有。看起来 Java 无法访问 WSDL。您可以使用 curl 或任何网络浏览器访问给定的 URL 吗? 也许你应该考虑在一个单独的(更有意义的)问题中寻求帮助。