org.eclipse.debug.core.DebugException:com.sun.jdi.ClassNotLoadedException:检索组件类型的数组时未发生类型的加载

问题描述 投票:4回答:1

我正在使用名为AuthSample chase-paymentechJava SDK 'PaymentechSDK.jar'开发version 7.4.0示例。当我尝试执行示例代码时,我遇到了以下错误。我不明白这个问题是什么。任何人都可以指导我吗?

仅供参考 - https://docs.oracle.com/cd/E69185_01/cwdirect/pdf/180/cwdirect_user_reference/SO04_16.htm

org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: Type has not been loaded occurred while retrieving component type of array
TransactionProcessor failed to initialize
null
com.paymentech.orbital.sdk.util.exceptions.InitializationException
    at com.paymentech.orbital.sdk.configurator.Configurator.loadSecurityProviders(Configurator.java:349)
    at com.paymentech.orbital.sdk.configurator.Configurator.load(Configurator.java:393)
    at com.paymentech.orbital.sdk.configurator.Configurator.getInstance(Configurator.java:72)
    at com.paymentech.orbital.sdk.transactionProcessor.TransactionProcessor.<init>(TransactionProcessor.java:43)
    at com.chase.paymentech.AuthSample.main(AuthSample.java:20)

以下代码供参考:

public class AuthSample {
    //Global Constants
    public final static int NORMAL_EXIT = 1;
    public final static int ERROR_EXIT = -1;

    public static void main(String[] args) {
        TransactionProcessorIF tp = null;
        try {
            tp = new TransactionProcessor();
        } catch (InitializationException iex) {
            System.err.println("TransactionProcessor failed to initialize");
            System.err.println(iex.getMessage());
            iex.printStackTrace();
            System.exit(ERROR_EXIT);
        }

        RequestIF request = null;
        try {
            //Tell the request object which template to use (see RequestIF.java)
            request = new Request(RequestIF.NEW_ORDER_TRANSACTION);

            //Basic Auth Fields
            request.setFieldValue("IndustryType", "EC");
            request.setFieldValue("MessageType", "A");
            request.setFieldValue("MerchantID", "700000000413");
            request.setFieldValue("BIN", "000002");
            request.setFieldValue("OrderID", "122003SA");
            request.setFieldValue("AccountNum", "4055011111111111");
            request.setFieldValue("Amount", "100");
            request.setFieldValue("Exp", "1209");

            // AVS Information
            request.setFieldValue("AVSname", "Jon Smith");
            request.setFieldValue("AVSaddress1", "4200 W Cypress St");
            request.setFieldValue("AVScity", "Tampa");
            request.setFieldValue("AVSstate", "FL");
            request.setFieldValue("AVSzip", "11111");

            // Additional Information
            request.setFieldValue("Comments", "This is Java SDK");
            request.setFieldValue("ShippingRef", "FEDEX WB12345678 Pri 1");

            //Uncomment the line below and modify to add a card security value (CVV2, CVC2 or CID)
            request.setFieldValue("CardSecVal", "111");
            request.setFieldValue("CardSecValInd", "1");

            //Display the request
            System.out.println("\nAuth Request:\n" + request.getXML());
        } catch (InitializationException ie) {
            System.err.println("Unable to initialize request object");
            System.err.println(ie.getMessage());
            ie.printStackTrace();
            System.exit(ERROR_EXIT);
        } catch (FieldNotFoundException fnfe) {
            System.err.println("Unable to find XML field in template");
            System.err.println(fnfe.getMessage());
            fnfe.printStackTrace();
            System.exit(ERROR_EXIT);
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(ERROR_EXIT);
        }

        //Process the transaction
        ResponseIF response = null;
        try {
            response = tp.process(request);
        } catch (TransactionException tex) {
            System.err.println("Transaction failed, including retries and failover");
            System.err.println(tex.getMessage());
            tex.printStackTrace();
            System.exit(ERROR_EXIT);
        }

        //Display the response
        //This line displays the entire xml response on the java system console.
        System.out.println("--------------------------------------------------");
        System.out.println("\nResponse:\n" + response.toXmlString() + "\n");
        System.out.println("Response Attributes:");
        System.out.println("isGood=" + response.isGood());
        System.out.println("isError=" + response.isError());
        System.out.println("isQuickResponse=" + response.isQuickResponse());
        System.out.println("isApproved=" + response.isApproved());
        System.out.println("isDeclined=" + response.isDeclined());
        System.out.println("AuthCode=" + response.getAuthCode());
        System.out.println("TxRefNum=" + response.getTxRefNum());
        System.out.println("ResponseCode=" + response.getResponseCode());
        System.out.println("Status=" + response.getStatus());
        System.out.println("Message=" + response.getMessage());
        System.out.println("AVSCode=" + response.getAVSResponseCode());
        System.out.println("CVV2ResponseCode=" + response.getCVV2RespCode());
        System.out.println("--------------------------------------------------");
    }
}

log4j的-config.xml中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
    <appender name="eCommerce" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${PAYMENTECH_LOGDIR}/eCommerce.log"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%5p,%d,[%c] - %m%n"/>
        </layout>
    </appender>
    <appender name="engine" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="${PAYMENTECH_LOGDIR}/engine.log"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%5p,%d,[%c] - %m%n"/>
        </layout>
    </appender>
    <category name="eCommerceLogger" additivity="false">        
    <priority value="INFO" />   
    <appender-ref ref="eCommerce"/>
    </category>
    <category name="engineLogger" additivity="false">       
    <priority value="INFO" />   
    <appender-ref ref="engine"/>
    </category>
    <category additivity="false" name="org.apache.commons.httpclient">
    <appender-ref ref="engine"/>
    </category>
    <category additivity="false" name="com.paymentech.orbital.sdk.util.ssl.StrictSSLProtocolSocketFactory">
    <appender-ref ref="engine"/>
    </category>
    <category additivity="false" name="httpclient">
    <appender-ref ref="engine"/>
    </category>
</log4j:configuration>

line handler.properties

##########################################################################
# PaymentechSDK_7.4.0
# Build Date: 11/14/2014
# Build Time: 10:06:20
##########################################################################

##########################################################################
# General Properties
##########################################################################
DTDVersion=PTI62

##########################################################################
# Transaction Processor Properties
##########################################################################
TransactionProcessor.poolSize=10
TransactionProcessor.retries=2

##########################################################################
# Response code configuration ('gateway' or 'host') 
##########################################################################
Response.response_type=gateway

##########################################################################
# Java Security Providers
##########################################################################
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.rsajca.Provider
security.provider.3=com.sun.net.ssl.internal.ssl.Provider

##########################################################################
# IBM Security Providers
#For IBM JDK Websphere merchants
#comment out or remove the above sun security provider list
#uncomment the following IBM security provider  list 
#No need to have any sun related jar files in CLASSPATH for Orbital SDK
##########################################################################
#security.provider.1=com.ibm.crypto.provider.IBMJCE
#security.provider.2=com.ibm.security.jgss.IBMJGSSProvider

##########################################################################
# Engine Properties
##########################################################################
engine.class=com.paymentech.orbital.sdk.engine.https.HttpsEngine
engine.hostname=orbitalvar1.paymentech.net
engine.port=443
engine.hostname.failover=orbitalvar2.paymentech.net
engine.port.failover=443
engine.connection_timeout_seconds=90
engine.read_timeout_seconds=90
engine.authorizationURI=/authorize
engine.sdk_version=PaymentechSDK_7.4.0


#########################################################################
# Proxy Information
#########################################################################
#engine.proxyname=myproxyname
#engine.proxyport=myproxyport


# Type of SSL SocketFactory implementation to use
# The values for this property are as follows:
#   default
#   strict
engine.ssl.socketfactory=default

# To specify a non-default location for your truststore (cacerts) file, 
# uncomment and edit these two lines
#engine.ssl.trustore.filename=C:/jdk1.3.1_03/jre/lib/security/cacerts
#engine.ssl.trustore.passphrase=changeit


##########################################################################
# XML Templates Configuration
##########################################################################

# Templates
XMLTemplates.Request.NewOrder=%PAYMENTECH_HOME%/xml/NewOrder.xml
XMLTemplates.Request.EOD=%PAYMENTECH_HOME%/xml/EOD.xml
XMLTemplates.Request.FlexCache=%PAYMENTECH_HOME%/xml/FlexCache.xml
XMLTemplates.Request.MFC=%PAYMENTECH_HOME%/xml/MFC.xml
XMLTemplates.Request.Profile=%PAYMENTECH_HOME%/xml/Profile.xml
XMLTemplates.Request.Reverse=%PAYMENTECH_HOME%/xml/Reverse.xml
XMLTemplates.Request.Inquiry=%PAYMENTECH_HOME%/xml/Inquiry.xml
XMLTemplates.Request.AccountUpdater=%PAYMENTECH_HOME%/xml/AccountUpdater.xml
XMLTemplates.Request.SafetechFraudAnalysis=%PAYMENTECH_HOME%/xml/SafetechFraudAnalysis.xml


# Complex Type Mappings
XMLTemplates.Request.ComplexRoot.PC3Core=%PAYMENTECH_HOME%/xml/templates/PC3Core.inc
XMLTemplates.Request.ComplexRoot.PC3Core.RecursiveElement1=PC3LineItems
XMLTemplates.Request.ComplexRoot.PC3Core.RecursiveElement1.CountElement=PC3LineItemCount
XMLTemplates.Request.ComplexRoot.PC3Core.RecursiveElement1.EnforceGreaterThanZero=yes
XMLTemplates.Request.ComplexRoot.PC3Core.RecursiveElement1.MaxCount=98

XMLTemplates.Request.ComplexRoot.PC3LineItems=%PAYMENTECH_HOME%/xml/templates/PC3LineItems.inc
XMLTemplates.Request.ComplexRoot.PC3LineItems.ChildIndexElement=PC3DtlIndex

XMLTemplates.Request.ComplexRoot.SettleRejectBin=%PAYMENTECH_HOME%/xml/templates/SettleRejectBin.inc

XMLTemplates.Request.ComplexRoot.PriorAuthID=%PAYMENTECH_HOME%/xml/templates/PriorAuthID.inc
XMLTemplates.Request.ComplexRoot.FraudAnalysis=%PAYMENTECH_HOME%/xml/templates/FraudAnalysis.inc
XMLTemplates.Request.ComplexRoot.SoftMerchantDescriptors=%PAYMENTECH_HOME%/xml/templates/SoftMerchantDescriptors.inc

我认为这些信息足以理解这个问题。请帮忙。

enter image description here

payment-gateway payment-processing
1个回答
0
投票

看起来你正在尝试从NULL检索值

RequestIF请求= null;

request = new Request(RequestIF.NEW_ORDER_TRANSACTION);

请检查并使用适当的对象进行更新。

© www.soinside.com 2019 - 2024. All rights reserved.