我有一个非常奇怪的问题.我正在尝试通过HTTPS执行SOAP POST请求.当我从我的代码发送请求时,我收到HTTP 500错误.现在从cxf日志中,如果我复制了相同的SOAP消息(标题和正文),我得到了错误,并使用简单的curl请求发布它,它工作正常.下面是我如何创建服务类和其他初始化
URL wsdlurl = SOAPWebServiceTransport.class.getClassLoader().
getResource("my.wsdl");
OnlinePort service= new OnlinePortService(wsdlurl).getOnlinePortPort();
Client proxy = ClientProxy.getClient(service);
// Provides WS-Security
WSS4JOutInterceptor wss4jOut = new WSS4JOutInterceptor();
wss4jOut.setProperty("action", "UsernameToken");
wss4jOut.setProperty("user", userName);
wss4jOut.setProperty("passwordType", "PasswordText");
wss4jOut.setProperty("password", password);
wss4jOut.setProperty(WSHandlerConstants.ADD_UT_ELEMENTS,
WSConstants.NONCE_LN + " " + WSConstants.CREATED_LN);
wss4jOut.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, ServerPasswordCallback.class.getName());
proxy.getEndpoint().getOutInterceptors().add(wss4jOut);
setConduitProperties((HTTPConduit) proxy.getConduit(),url);
Run Code Online (Sandbox Code Playgroud)
在set conduit方法中,我忽略了ssl检查(仅用于开发环境)并设置了一些标头.
TLSClientParameters tcp = new TLSClientParameters();
tcp.setDisableCNCheck(true);
// Creating Trust Manager
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) { …
Run Code Online (Sandbox Code Playgroud) 在Nodejs中使用Soap模块(通过loopback-connector-soap),我正在尝试将json转换为xml以获取我的soap请求,但是我遇到了一些问题......
这是什么:
<ns:UserDefinedFields>
<ns:UserDefinedField>
<ns:displayName>Campaign?</ns:displayName>
<ns:fieldValue>Yes</ns:fieldValue>
</ns:UserDefinedField>
</ns:UserDefinedFields>
<ns:UserDefinedFields>
<ns:UserDefinedField>
<ns:displayName>Anticipated Use</ns:displayName>
<ns:fieldValue>6</ns:fieldValue>
</ns:UserDefinedField>
Run Code Online (Sandbox Code Playgroud)
应该是什么:
<ns:UserDefinedFields>
<ns:UserDefinedField>
<base:displayName>Campaign?</base:displayName>
<base:fieldValue>Yes</base:fieldValue>
</ns:UserDefinedField>
<ns:UserDefinedField>
<base:displayName>Anticipated Use</base:displayName>
<base:fieldValue>6</base:fieldValue>
</ns:UserDefinedField>
</ns:UserDefinedFields>
Run Code Online (Sandbox Code Playgroud)
<ns:UserDefinedFields>
<base:fieldValue>
而不是<ns:fieldValue>
任何建议都会非常有帮助!谢谢!
XML:
{
...
"UserDefinedFields": [
{
"displayName": "Campaign?",
"fieldValue": "Yes"
},
{
"displayName": "Anticipated Use",
"fieldValue": 6
}
]
...
}
Run Code Online (Sandbox Code Playgroud)
XSD:
...
<xs:element name="UserDefinedFields" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="UserDefinedField" type="base:UserDefinedFieldType" minOccurs="0" maxOccurs="15"/>
</xs:sequence>
</xs:complexType>
</xs:element>
...
Run Code Online (Sandbox Code Playgroud) 我使用soap.js在node.js中创建了一个soap客户端.Soap通过https进行通信.当我尝试连接时,我不断收到此错误
{[错误:自签名证书]代码:'DEPTH_ZERO_SELF_SIGNED_CERT'}
以下是我的代码
var url = '../public/test.wsdl';
var client = soap.createClient(url,sslOptions, function(err, client) {
client.setSecurity(new soap.WSSecurity('testuser', 'testpassword'));
client.CheckStatus(args, function(err, result) {
console.log(err);
// console.log(result);
});
});
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下ssl设置,但没有成功
sslOptions = {
key: fs.readFileSync( '../certs/test-key.pem'),
cert: fs.readFileSync( '../certs/test-cert.pem'),
rejectUnauthorized : false,
secureOptions : constants.SSL_OP_NO_TLSv1_2,
strictSSL : false
};
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激 !!
假设我想接受以下网址:
http://myserver/myapplication/posts
http://myserver/myapplication/posts/<id>
http://myserver/myapplication/posts/<id>/delete
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用servlet装饰器@WebServlet
呢?我正在调查value
,urlPatterns
但我不知道怎么做.例如,
@WebServlet(urlPatterns={"/posts", "/posts/*"})
[..]
String param = request.getPathInfo();
Run Code Online (Sandbox Code Playgroud)
给我一些结果,但如何使用它?此外,request.getPathInfo()
似乎返回通配符的值,但如果我想要更多的参数,如果http://http://myserver/myapplication/posts/<id>/delete/<force>
?
java ×2
node.js ×2
apache ×1
curl ×1
cxf ×1
https ×1
javascript ×1
json ×1
loopbackjs ×1
rest ×1
servlet-3.0 ×1
servlets ×1
soap ×1
soap-client ×1
ssl ×1