从WCF服务执行JAR

时间:2014-07-16 23:09:51

标签: java c# xml wcf process

我的服务器中运行了WCF服务,它必须在Oracle数据库中保存一些信息,创建XML文件,之后必须调用签署XML的JAR并将签名的XML文件发送到外部网络服务。

执行JAR并对文件进行良好签名但是当它尝试将XML发送到外部Web服务时出现此错误:

Fallo al acceder al WSDL en: https://theExternalWebServiceUri?wsdl. 
Ha fallado con: java.lang.RuntimeException: 
Unexpected error: java.security.InvalidAlgorithmParameterException: 
the trustAnchors parameter must be non-empty.

我必须说当我在cmd中执行JAR时,它会做好一切,它会对文件进行签名并将文件完美地发送到外部Web服务。

我使用此代码从我的WCF服务调用JAR:

Process signProcessWithJava = new Process();
signProcessWithJava.StartInfo.UseShellExecute = false;
signProcessWithJava.StartInfo.FileName = "java";
signProcessWithJava.StartInfo.Arguments = @"-jar " + jarPath + " " + arg1 + " " + arg2;
signProcessWithJava.Start();
signProcessWithJava.WaitForExit();

我也尝试在进程中设置管理员用户,但是JAR没有执行。

我在启动方法之前使用以下行设置管理员用户:

signProcessWithJava.StartInfo.Domain = "domain";
signProcessWithJava.StartInfo.UserName = "Admin";
System.Security.SecureString ss = new System.Security.SecureString();
foreach (var item in "password".ToCharArray())
{
    ss.AppendChar(item);
}
signProcessWithJava.StartInfo.Password = ss;

我希望你能帮助我。

任何帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

我已经解决了。

问题是我在ProxyConfig文件中有这些行:

System.setProperty("java.net.useSystemProxies", "true");
System.setProperty("javax.net.ssl.trustStore", "resources/cert");
System.setProperty("javax.net.ssl.trustStorePassword", "password");

我用“resources / cert”设置路径,然后用绝对路径替换它:

System.setProperty("javax.net.ssl.trustStore","C:\\runid\\resources\\cert");
//System.setProperty("javax.net.ssl.trustStore", "resources/cert");

这很奇怪,因为它始终在命令行中工作,但不是来自WCF服务调用。

相关问题