我正在尝试使用Teradata UDF连接到JAVA服务器,这是我的代码。它使用HOST作为" localhost"和PORT(整数)为" 9091"并且已经提供了所有参数,例如PEM文件位置等,但是函数总是从catch块退出。我知道在Teradata UDF中不允许使用exit(0)
,我只是将它用于调试。在ORACLE UDF的情况下,相同的代码连接到服务器绝对没问题。请告知Teradata可以使用哪些端口进行通信,或者Teradata是否支持与服务器的SSL连接。
服务器接受请求类型的参数并返回类型vector <struct>
的结果。
Response CplusplusClient::startClient(DeTokenizationRequest request) {
boost::shared_ptr<TSSLSocketFactory> factory(new TSSLSocketFactory());
factory->loadPrivateKey(PRIVATE_KEY.c_str());
factory->loadCertificate(CERTIFICATE.c_str());
factory->loadTrustedCertificates(TRUSTED_CERTIFICATE.c_str());
factory->authenticate(true);
boost::shared_ptr<TSSLSocket> socket = factory->createSocket(HOST,PORT);
boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
XSecurityServiceClient client(protocol);
Response result;
try {
transport->open();
client.requested(result, request);
transport->close();
} catch (TException& tx) {
exit(0);
}
return result;
}
}
答案 0 :(得分:0)
将端口更改为9092
并且工作正常