java - 在 JDeveloper 12c 中运行 Web 服务客户端和代理时出现错误,严重 : java. io.FileNotFoundException : ./config/jps-config.xml

标签 java oracle-adf jdeveloper policy

我正在 JDeveloper 中开发 Java 应用程序。该应用程序用于连接 Oracle 销售云 Web 服务,因此为此我执行了以下步骤。

第 1 步:创建自定义应用程序

第 2 步:然后我使用 Web 服务客户端和代理从 wsdl 生成客户端。

它成功生成了,我已将凭据添加到主类中。这是我的主课。

public class PersonServiceSoapHttpPortClient {


private static final AddressingVersion WS_ADDR_VER = AddressingVersion.W3C;


public static void main(String[] args) throws Exception{
    PersonService_Service personService_Service = new PersonService_Service();
    PersonService personService = personService_Service.getPersonServiceSoapHttpPort();

    // Configure credential providers
    Map<String, Object> requestContext = ((BindingProvider) personService).getRequestContext();


    try {
        setPortCredentialProviderList(requestContext);
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    // Add your code to call the desired methods.
    FindCriteria findCriteria=new FindCriteria();

    findCriteria.setFetchSize(1);
    findCriteria.setFetchSize(10);

    FindControl findControl=new FindControl();
    findControl.setRetrieveAllTranslations(true);     


    System.out.println("before invoking  method");
    PersonResult personResult=personService.findPerson(findCriteria, findControl);
    List<Person> persons=personResult.getValue();

    System.out.println("The Response size is ::"+persons.size());

}


@Generated("Oracle JDeveloper")
public static void setPortCredentialProviderList(Map<String, Object> requestContext) throws Exception {
    // TODO - Provide the required credential values

    String username = "abc";
    String password = "acdd";
    String clientKeyStore = "";
    String clientKeyStorePassword = "";
    String clientKeyAlias = "";
    String clientKeyPassword = "";
    String serverKeyStore = "";
    String serverKeyStorePassword = "";
    String serverKeyAlias = "";
    List<CredentialProvider> credList = new ArrayList<CredentialProvider>();

     credList.add(getUNTCredentialProvider(username, password));
     credList.add(getBSTCredentialProvider(clientKeyStore, clientKeyStorePassword, clientKeyAlias, clientKeyPassword, serverKeyStore, serverKeyStorePassword, serverKeyAlias, requestContext));

    credList.add(getSAMLTrustCredentialProvider());
    requestContext.put(WSSecurityContext.CREDENTIAL_PROVIDER_LIST, credList);
}


@Generated("Oracle JDeveloper")
public static CredentialProvider getSAMLTrustCredentialProvider() {
    return new SAMLTrustCredentialProvider();
}


@Generated("Oracle JDeveloper")
public static CredentialProvider getUNTCredentialProvider(String username, String password) {
    return new ClientUNTCredentialProvider(username.getBytes(), password.getBytes());
}


@Generated("Oracle JDeveloper")
public static CredentialProvider getBSTCredentialProvider(String clientKeyStore, String clientKeyStorePwd,
                                                          String clientKeyAlias, String clientKeyPwd,
                                                          String serverKeyStore, String serverKeyStorePwd,
                                                          String serverKeyAlias,
                                                          Map<String, Object> requestContext) throws Exception {
    List serverCertList = CertUtils.getCertificate(serverKeyStore, serverKeyStorePwd, serverKeyAlias, "JKS");
    List clientCertList = CertUtils.getCertificate(clientKeyStore, clientKeyStorePwd, clientKeyAlias, "JKS");
    final X509Certificate serverCert =
        (serverCertList != null && serverCertList.size() > 0) ? (X509Certificate) serverCertList.get(0) : null;
    final X509Certificate clientCert =
        (clientCertList != null && clientCertList.size() > 0) ? (X509Certificate) clientCertList.get(0) : null;

    requestContext.put(WSSecurityContext.TRUST_MANAGER, new TrustManager() {
        public boolean certificateCallback(X509Certificate[] chain, int validateErr) {
            boolean result =
                (chain != null && chain.length > 0) && (chain[0].equals(serverCert) || chain[0].equals(clientCert));
            return result;
        }
    });
    return new ClientBSTCredentialProvider(clientKeyStore, clientKeyStorePwd, clientKeyAlias, clientKeyPwd, "JKS",
                                           serverCert);
 }
}

在运行此客户端 stub 时,我遇到以下异常。

 SEVERE: java.io.FileNotFoundException: ./config/jps-config.xml 
 (No such file or directory) INFO: Policy subject is not registered.
 SEVERE: java.io.FileNotFoundException: ./config/jps-config.xml 
 (No such file or directory)
 SEVERE: java.io.FileNotFoundException: ./config/jps-config.xml 
 (No such file or directory)
 SEVERE: java.io.FileNotFoundException: ./config/jps-config.xml 
(No such file or directory)
 SEVERE: java.io.FileNotFoundException: ./config/jps-config.xml 
(No such file or directory)
 INFO: EffectivePolicySetFeature not on the binding, 
 will look up    policy set for; ResourcePattern 
     [absolutePortableExpression=///UNKNOWN|#MODULE|
 WS-Client({http://xmlns.oracle.com/apps/cdm/foundation
 /parties/personService/applicationModule/}
 PersonService#PersonServiceSoapHttpPort,wls)]
 SEVERE: java.io.FileNotFoundException: ./config/jps-config.xml
 (No such file or directory)
  INFO: EffectivePolicySetFeature=oracle.j2ee.ws.common.wsm
 .EffectivePolicySetFeature@76f6c7e1
 INFO: WSM Security is not enabled for Policy Subject: 
 ResourcePattern [absolutePortableExpression=
  ///UNKNOWN|#MODULE|WS-
  Client({http://xmlns.oracle.com/apps/cdm/foundation
 /parties/personService/applicationModule/}PersonService
 #PersonServiceSoapHttpPort,wls)]
 java.lang.SecurityException: keyStoreFilename is either null 
 or empty    string
 at    weblogic.wsee.security.util.CertUtils.getCertificate
(CertUtils.java:89)
at   com.oracle.xmlns.apps.cdm.foundation.parties.personservice
.applicationmodule.PersonServiceSoapHttpPortClient
.getBSTCredentialProvider(PersonServiceSoapHttpPortClient.java:129)
at com.oracle.xmlns.apps.cdm.foundation.parties.personservice
.applicationmodule.PersonServiceSoapHttpPortClient
.setPortCredentialProviderList
(PersonServiceSoapHttpPortClient.java:106)
at com.oracle.xmlns.apps.cdm.foundation.parties.personservice
.applicationmodule.PersonServiceSoapHttpPortClient.main
(PersonServiceSoapHttpPortClient.java:52)

最佳答案

您运行的是哪个版本?我在使用 JDeveloper 12.1.3 版本时遇到了同样的问题。尝试从 Oracle 网站下载 12.1.2。这对我来说是成功的。

关于java - 在 JDeveloper 12c 中运行 Web 服务客户端和代理时出现错误,严重 : java. io.FileNotFoundException : ./config/jps-config.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28448612/

相关文章:

oracle-adf - 如何在控制台中显示 ADF - 业务组件 SQL 查询?

java - 从 JDeveloper 中的项目读取 json 文件 - Oracle MAF 项目

java - HTTP 状态 404 – 未找到 tomcat spring

java - 单击转换字符中的链接时,java 项目中的 log4j 显示错误的文件

java - 如何检查我的应用程序是否失去焦点?

java - 使用 maven 部署到独立 Weblogic Server ADF 安全应用程序的最佳方法是什么

java - 如何在mysql中创建动态查询

java - Gradle Android 构建项目错误 : Could not find meta-data resource

java - 使用 oracle ADF 分页

javascript - ADF 根据 OutputText 值显示图像