簡體   English   中英

我在Eclipse中運行我的動態Web項目。 我收到此錯誤,為什么我不知道

[英]i was running my dynamic web project in eclipse. i getting this error why i dont know

    SEVERE: Servlet.service() for servlet [com.servlet.FileCalling] in context with path [/ScfUploaddFile] threw exception [Servlet execution threw an exception] with root cause
    java.lang.ClassNotFoundException: javax.ejb.CreateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at com.bs.theme.migration.loader.utility.QueryBuilder.doTFinvdtoQuery(QueryBuilder.java:355)
at com.bs.theme.migration.loader.action.manager.FGBDataMigration.main(FGBDataMigration.java:61)
at com.servlet.FileCalling.doPost(FileCalling.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:662)

但是,如果我在Java控制台應用程序中運行相同的代碼,它就會被執行,並且我正在控制台中獲取值,但是當我通過將其與Web應用程序集成來運行相同的代碼時,會拋出一個錯誤

    public  String process(String message, int start) {
    System.out.println("from process method");
    String result = "Unable to Process";
    String ejbClientUrl = DBPropertiesLoader.EJBCLIENT_URL;
    System.out.println("Connecting : " + ejbClientUrl);
    try {

        System.getProperties().put("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");
         System.getProperties().put("java.naming.provider.url", DBPropertiesLoader.TI_EJB_URL);


        System.getProperties().put("java.naming.provider.url", ejbClientUrl);

        Context ctx = new InitialContext();
        Object ejbObject = ctx.lookup("ejb/EnigmaServiceAccess");
        System.out.println("EJB Object : "+ejbObject);

QueryBuilder.java

                    public static String doTFinvdtoQuery(String table, String inputFile,
        String lowRange, String highRange) {

    Connection connection = null;
    String xmlToPost = null;
    Statement queryStatement = null;
    ResultSet resultSet = null;

    try {
        connection = ThemeDB.getDBConnection();
        queryStatement = connection.createStatement();
        System.out.println("****Generating Query****" + "\n");
        String query = getQuery(table, inputFile, lowRange, highRange);

        resultSet = queryStatement.executeQuery(query);
        BeanProcessor bp = new BeanProcessor();
        List<ServiceRequest> sRequestItems = new ArrayList<ServiceRequest>();
        String finalResult = "Unable to Process";

        int num = 0;
        int count = 0;
        while (resultSet.next()) {

            try {

                num++;
                count = resultSet.getInt("SNO");

                ArrayList<InvoiceCustomer> list = new ArrayList<InvoiceCustomer>();
                list.add((InvoiceCustomer) bp.toBean(resultSet, InvoiceCustomer.class));

                TFinvdtoHandler tfinv = new TFinvdtoHandler();
                sRequestItems.add(tfinv
                        .createTFinvdtoRequest(list));
                if (num % 1 == 0) {

                    xmlToPost = MessageUtil.xmlServiceRequest(
                            sRequestItems, "TFINVNEW");
                    logger.debug(xmlToPost);

                    System.out
                            .println("**Sending data to TI Plus through EJB Client***"
                                    + "\n");
                    finalResult = TIPlusEJBClient.process(xmlToPost, count);

                    if (!finalResult.equals("Unable to Process")) {

                        List<ServiceResponse> serviceResponses = MessageUtil
                                .processResponse(finalResult);
                        for (ServiceResponse serviceResponse : serviceResponses) {
                            // System.out.println("**Response Status***"
                            // +serviceResponse.getResponseHeader().getStatus());
                            // System.out.println("**Response CorrID***"
                            // +serviceResponse.getResponseHeader().getStatus());

                            MigrationUtil.updateMigrationDataStagingStatus(
                                    table, serviceResponse
                                            .getResponseHeader()
                                            .getStatus(), serviceResponse
                                            .getResponseHeader()
                                            .getCorrelationId(),
                                    serviceResponse.getResponseHeader()
                                            .getDetails().getError()
                                            .toString());
                        }

                    }
                    logger.debug("\n");
                    sRequestItems = new ArrayList<ServiceRequest>();
                    finalResult = "Unable to Process";
                }

            } catch (Exception e) {
                // TODO: handle exception
                logger.debug("Exception Occured ->" + e.getMessage());
                e.printStackTrace();
            }

        }

    } catch (SQLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();

        logger.debug("Exception Occured ->" + e1.getMessage());
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
        logger.debug("Exception Occured ->" + e1.getMessage());
    } catch (Exception e) {
        logger.debug("Exception Occured ->" + e.getMessage());
    } finally {

        MigrationUtil.surrenderConnection(connection, resultSet,
                queryStatement);

    }

    /*
     * System.out.println("Remaining request count ->" +
     * sRequestItems.size()); if (sRequestItems.size() > 0) {
     * 
     * xmlToPost = MessageUtil .xmlServiceRequest(sRequestItems,
     * "TFILCDTO"); logger.debug(xmlToPost); finalResult =
     * TIPlusEJBClient.process(xmlToPost, count);
     * 
     * System.out
     * .println("**Sending remaining data to TI Plus through EJB Client***"
     * + "\n"); if (!finalResult.equals("Unable to Process")) {
     * 
     * List<ServiceResponse> serviceResponses = MessageUtil
     * .processResponse(finalResult); for (ServiceResponse serviceResponse :
     * serviceResponses) { // System.out.println("**Response Status***" //
     * +serviceResponse.getResponseHeader().getStatus()); //
     * System.out.println("**Response CorrID***" //
     * +serviceResponse.getResponseHeader().getStatus());
     * 
     * MigrationUtil.updateMigrationDataStagingStatus(table,
     * serviceResponse.getResponseHeader().getStatus(),
     * serviceResponse.getResponseHeader() .getCorrelationId(),
     * serviceResponse .getResponseHeader().getDetails()
     * .getError().toString()); }
     * 
     * }
     * 
     * logger.debug("\n");
     * 
     * }
     */

    return xmlToPost;
}

項目->屬性-> Java構建路徑->添加庫->服務器運行時->單擊下一步->選擇您的EJB容器

它將作為WebSphere中的Web應用程序運行而沒有任何問題。

如果要從Tomcat運行它,則需要向應用程序中添加以下jar,但僅限於Tomcat: com.ibm.ws.ejb.thinclient_x.yzjarcom.ibm.ws.orb_8.5.0.jar 您還應該查看此頁面,如果您的WebSphere是安全的,那么運行IBM Thin Client for Enterprise JavaBeans可能會導致SSL以后出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM