标签: webservice-client

无法调用Web服务

我目前正在尝试使用Apache CXF构建的客户端调用Web服务.虽然该服务在浏览器中可用,但由于以下错误,我无法连接到该服务.

有关这个问题的任何想法?

org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Connection refused: connect
        at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:75)
        at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
        at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
        at $Proxy78.getStandardVersion(Unknown Source)
        at org.apache.jsp.services.Result_jsp._jspService(Result_jsp.java:622)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:679)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1293)
        at java.lang.Thread.run(Thread.java:619)
Caused by: com.ctc.wstx.exc.WstxIOException: Connection refused: connect
        at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:313)
        at …
Run Code Online (Sandbox Code Playgroud)

java connection cxf webservice-client

5
推荐指数
1
解决办法
1万
查看次数

如何让我的应用程序读取应用程序配置而不是machine.config?

我在c#中创建了一个用于访问Web服务的应用程序,如果安装在Program Files文件夹之外,则完全正常工作.奇怪的是,当我在Program Files文件夹中安装它时,客户端无法读取[application] .dll.config中的配置并引发如下错误:

"无法在ServiceModel客户端配置部分找到默认端点元素引用合同[..].这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素. "

我读过这篇文章似乎并没有解决我的问题. 找不到默认端点元素

我使用Windows7顺便说一句,并没有测试到其他操作系统.

更新:阅读上面的链接后,我试图将配置移动到machine.config并且它可以工作,但是如何让我的应用程序读取应用程序配置而不是machine.config?

vsto webservice-client

5
推荐指数
1
解决办法
3497
查看次数

尝试使用JAX-WS 2.1调用Web服务时出现“ Exception javax.xml.ws.WebServiceException:不支持的端点地址”

我正在尝试在此处调用Web服务:http : //publicbetawebservices.hotel.de/V2_8/FreeHotelSearchWebService.svc?WSDL

我已经使用wsimport和JDK1.6.0_29生成了代理类。我的wsimport命令行是:

wsimport.exe" -keep -B-XautoNameResolution -d E:\mapov\mapov-dev\shared\hotel_info\ http://publicbetawebservices.hotel.de/V2_8/FreeHotelSearchWebService.svc?WSDL
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码尝试调用该服务:

QName qName = new QName("http://webservices.hotel.de/V2_8", "FreeHotelSearchWebService");
FreeHotelSearchWebService service = new FreeHotelSearchWebService(new URL("http://publicbetawebservices.hotel.de/V2_8/FreeHotelSearchWebService.svc"), qName);
IFreeHotelSearchWebService sws = service.getBasicHttpBindingIFreeHotelSearchWebService();
String version = sws.getWebservicesVersion();
System.out.println("Hotel.info web service version: " + version);
Run Code Online (Sandbox Code Playgroud)

但是我得到以下异常:

线程“主”中的异常javax.xml.ws.WebServiceException:不支持的端点地址:在com.sun.xml.ws上的com.sun.xml.ws.api.pipe.TransportTubeFactory.create(TransportTubeFactory.java:148)上。 com.sun.xml.ws.api.pipe.Fiber .__ doRun(Fiber.java:641)的com.sun.xml.ws.api.pipe.Fiber的transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:134) com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)的_doRun(Fiber.java:600)com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber。 com.sun.xml.ws.client.Stub.process(Stub.java:323)处com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:161)处的java:482) com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93)上的.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:113)。xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144)在$ Proxy42.getWebservicesVersion(未知源)

在大多数示例中,我已经看到生成的代码包含getPort()方法,但尚未为此类生成此代码。我的代码错误还是我需要以其他方式运行wsimport?我还尝试了调用FreeHotelWebService构造函数而没有产生相同异常的参数。

java web-services jax-ws webservice-client

5
推荐指数
1
解决办法
2万
查看次数

用于C++的Web服务客户端库

我想在Windows上为项目实现Web服务客户端.我想获得网络服务信息,肥皂请求和肥皂响应.我需要一个可以用于这些目的的C++库(而不是wsdlpull).

要求:

  • 应该是一个C++库
  • 可用于访问任何SOAP Web服务(因此我可以将URL,Web服务名称,Web服务方法和所有参数作为参数传递给函数调用)
  • 可以在Web服务中查询其WSDL,并返回可用的方法名称,方法的参数及其数据类型
  • 简单的doucmentation

更具体一点:库应该有这样的简单调用来获取Web服务信息

invoker.getOperations(operations);

outputXml += "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
outputXml += "<webService";
outputXml += " name=\"" + GetServiceName(&invoker) + "\"";
outputXml += ">\n";
outputXml += "\t<webMethods>\n";
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ wsdl gsoap webservice-client

5
推荐指数
1
解决办法
1万
查看次数

从.Net Web Service WSDL错误在Eclipse中生成(Java)Webservice客户端错误

当试图从现有的.Net Web服务的WSDL中使用向导/ Web服务/ Web服务客户端在Eclipse中生成Web服务客户端时,遇到以下错误: “向导WSDL验证被禁用。” ,由于以下原因,该向导无法继续返回主页: 找不到服务器,并且WebServiceProject不存在。选择一个现有项目或使用首选项来配置服务器运行时。 我该怎么办才能解决这个问题?谢谢。

eclipse web-services webservice-client

5
推荐指数
1
解决办法
4273
查看次数

VS2010忽略"添加服务引用"\"集合类型"=列表.仅为集合生成数组

Web服务位于:http://api.bing.net/search.wsdl

在VS2010的项目中,我单击"添加服务引用".作为"集合类型",我指定" System.Collections.Generic.List "(或该列表中的任何其他内容,但不指定数组).单击确定 - 它将生成代码.

实际结果:

代码包含数组而不是列表:

[System.Xml.Serialization.XmlArrayAttribute(Order=10)]
public SourceType[] Sources {
    get {
        return this.sourcesField;
    }
    set {
        this.sourcesField = value;
        this.RaisePropertyChanged("Sources");
    }
}
Run Code Online (Sandbox Code Playgroud)

预期结果:

代码应包含所有集合的列表.

问题:

Web服务文件夹中生成的大量文件会影响实际的代码生成:Reference.svcmap,*.svcinfo,*.wsdl本身.

如何强制Wsdl2code生成器(使用上面提到的这些文件)生成此Web服务的列表?

Reference.svcmap包含使用列表的行,但它没有帮助:

<CollectionMappings>
  <CollectionMapping TypeName="System.Collections.Generic.List`1" Category="List" />
</CollectionMappings>
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<UseSerializerForFaults>true</UseSerializerForFaults>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />
Run Code Online (Sandbox Code Playgroud)

这里也提出类似的问题- 但它的最佳答案对这种情况没有帮助.

.net webservice-client visual-studio-2010

5
推荐指数
0
解决办法
1227
查看次数

PHP环境中的Web服务代理生成器

在Visual Studio中,当我们想要使用Web服务时,我们只需添加服务引用,然后只需将Web服务地址复制并粘贴到地址字段,然后单击Go!

在此输入图像描述

在Visual Studio IDE(或svcutil.exe)的帮助下,我们可以使用生成的代理类进行Web服务.

就像是:

TopUpServiceClient client = new TopUpServiceClient();

TopUpRequest request = new TopUpRequest();
request.MerchantId = 100;
request.ReferenceId = 1001;
request.ServiceType = ServiceType.Prepaid;

TopUpResponse response = client.TopUp(request);
Run Code Online (Sandbox Code Playgroud)

我们有一个客户想要使用我们的服务与php,但他在创建和使用Soap对象和解析WSDL和数据合同对象时遇到了很多问题.

我测试了他的PHP脚本并用fiddler调试它,传递给我们系统的Envelope是完全错误的.(他使用SoapClient和NuSoap没有运气!)

顺便说一下, 我的问题:是否有任何Web服务代理生成器,就像我们在PHP世界中的Visual Studio中所拥有的那样?任何IDE?PhpStorm,NetBeans,Eclips?还是可以帮助我们的任何工具?

我想给他发一些像我们生成的代理环境,他可以轻松使用它!

php web-services webservice-client visual-studio phpstorm

5
推荐指数
1
解决办法
2711
查看次数

获取sun.security.validator.ValidatorException:PKIX路径构建失败错误

我的应用程序调用Web服务以验证该Web服务中的特定用户.该Web服务具有自己的自签名CA证书.我正在使用POST REST调用该服务来通过传递用户的用户名'和'密码'来验证用户,但后来我收到此错误..

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径

I have created a keystore and imported that servers certificate into that it. I am using that keystore in my application to trust the web service. Importing the certificate into JDK's cacerts can resolve my problem but this application can migrate to other servers according to clients requirement. So importing that certificate into jdk will not resolve the problem because that certificate has to be imported on that server too. So I have to trust it through …

java rest webservice-client ssl-certificate

5
推荐指数
1
解决办法
4万
查看次数

处置/清理Web服务代理

同步使用后处理/清理Web服务代理实例的最佳做法是什么?

如何如果代理类是源自于不同的答案SoapHttpClientProtocolClientBase<T>

背景

我试图找出为什么我的一个WCF Web服务有时似乎进入一个不再响应服务调用的状态.基本上它似乎挂了,现在我真的没有任何硬数据来弄清楚发生这种情况时会发生什么.

我怀疑可能存在的一个问题是,这个WCF服务本身正在对其他一些服务进行Web服务调用.使用从SoapHttpClientProtocol(使用wsdl.exe制作)派生的代理调用(同步)这些其他服务,此时这些代理实例将由终结器清理:

...
var testProxy = new TestServiceProxy();
var repsonse = testProxy.CallTest("foo");

// process the reponse
...
Run Code Online (Sandbox Code Playgroud)

那么我应该简单地将它们包裹起来using(...) { ... }吗?

...
using(var testProxy = new TestServiceProxy())
{
    var repsonse = testProxy.CallTest("foo");

    // process the reponse
}
...
Run Code Online (Sandbox Code Playgroud)

如果我要ClientBase<T>通过使用重新创建它们来更改这些代理类,该svcutil.exe怎么办?根据我到目前为止的研究,似乎Dipose()派生类的方法ClientBase<T>将在内部调用Close()类的方法,而这个方法可能反过来抛出异常.因此,基于ClientBase<T>a 包装代理Using()并不总是安全的.

所以重申一个问题:

  • 在代理基于何时使用它后,我应该如何清理我的Web服务代理SoapHttpClientProtocol
  • 在代理基于何时使用它后,我应该如何清理我的Web服务代理ClientBase<T>

c# asp.net webservice-client

5
推荐指数
1
解决办法
8105
查看次数

通过WSDL创建动态SOAP客户端

我正在尝试转换此代码,在.net核心工作...此代码读取WSDL文件,并动态生成程序集(因为我有多个wsdl文件).但是这段代码不能在核心编译...因为我没有例如CSharpCodeProvider类.

谁知道更好的方法?

private void Teste()
{
    var ass = CriarAssemblie(wsdl);
    dynamic service = Activator.CreateInstance(ass.GetType("Type1"));
}

private Assembly CreateAssembly(Stream wsdlFile)
{
    var serviceDescription = ServiceDescription.Read(wsdlFile);
    StringWriter strWriter = new StringWriter(CultureInfo.CurrentCulture);
    CSharpCodeProvider cProvider = new CSharpCodeProvider();
    cProvider.GenerateCodeFromNamespace(GerarNameSpace(serviceDescription), strWriter, null);

    string codigoClasse = strWriter.ToString();

    CompilerParameters parameters = new CompilerParameters(new string[] { "System.dll", "System.Xml.dll", "System.Web.Services.dll", "System.Data.dll" });
    parameters.GenerateExecutable = false;
    parameters.GenerateInMemory = true;
    parameters.TreatWarningsAsErrors = false;
    parameters.WarningLevel = 4;

    CompilerResults results = cProvider.CompileAssemblyFromSource(parameters, codigoClasse);
    return results.CompiledAssembly;
}

private CodeNamespace GerarNameSpace(ServiceDescription serviceDescription)
{
    var importer …
Run Code Online (Sandbox Code Playgroud)

c# soap wsdl webservice-client .net-core

5
推荐指数
0
解决办法
622
查看次数