java.lang.ClassCastException: com.ibm.ws.asynchbeans.WorkManagerImpl 与 org.omg.CORBA.portable.ObjectImpl 不兼容

问题描述

我正在使用 WebSphere Commerce 8 开发应用程序。

我有这门课

package com.whr.commerce.catalog.objects;

import javax.rmi.PortableRemoteObject;

import com.ibm.ivj.ejb.runtime.AbstractSessionAccessBean;




/**
 * WHRCatalogJDBCHelperAccessBean
 * @generated
 */
public class WHRCatalogJDBCHelperAccessBean extends AbstractSessionAccessBean {

[...]
    private com.whr.commerce.catalog.objects.WHRCatalogJDBCHelperHome ejbHome()
        throws java.rmi.remoteexception,javax.naming.NamingException {
        return (com.whr.commerce.catalog.objects.WHRCatalogJDBCHelperHome) PortableRemoteObject
            .narrow(
                getHome(),com.whr.commerce.catalog.objects.WHRCatalogJDBCHelperHome.class);
    }

    /**
     * ejbRef
     * @generated
     */
    private com.whr.commerce.catalog.objects.WHRCatalogJDBCHelper ejbRef()
        throws java.rmi.remoteexception {
        if (ejbRef == null)
            return null;
        if (__ejbRef == null)
            __ejbRef = (com.whr.commerce.catalog.objects.WHRCatalogJDBCHelper) PortableRemoteObject
                .narrow(
                    ejbRef,com.whr.commerce.catalog.objects.WHRCatalogJDBCHelper.class);
    
        return __ejbRef;
    
  [...]
        }

当我尝试打开页面时,它在运行时给我这个错误

01/03/21 15.44.44:532 CET] 00000167 CommerceSrvr  E DataBeanManager activate(DataBean,ViewCommandContext,HttpServletRequest,HttpServletResponse) CMN0420E: Si è verificata la seguente eccezione comando durante l'elaborazione: "java.lang.classCastException: com.ibm.ws.asynchbeans.WorkManagerImpl incompatible with org.omg.CORBA.portable.ObjectImpl". java.lang.classCastException: com.ibm.ws.asynchbeans.WorkManagerImpl incompatible with org.omg.CORBA.portable.ObjectImpl
at com.ibm.rmi.javax.rmi.PortableRemoteObject.getobjectImpl(PortableRemoteObject.java:572)
at com.ibm.rmi.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:314)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:161)
at com.whr.commerce.catalog.objects.WHRCatalogJDBCHelperAccessBean.ejbHome(WHRCatalogJDBCHelperAccessBean.java:50)
at com.whr.commerce.catalog.objects.WHRCatalogJDBCHelperAccessBean.instantiateEJB(WHRCatalogJDBCHelperAccessBean.java:83)
at com.whr.commerce.catalog.objects.WHRCatalogJDBCHelperAccessBean.findCatgroupIdByField2MemId(WHRCatalogJDBCHelperAccessBean.java:97)

我尝试更改导入,删除一些可能发生冲突的库,但没有解决...

有什么建议吗?我正在使用 RAD IDE。

解决方法

试试这个代码。

    String BS_PORT = ""; // port number of the remote EJB container
    String IP_ADDRESS = ""; // IP address of the remote EJB container

    String REMOTE_LOOKUP_KEY = ""; // the lookup key which is configured via the Administrative console
    String JNDI_PROVIDER_URL = "iiop://" + IP_ADDRESS + ":" + BS_PORT;

    Properties props = new Properties();
    props.put( javax.naming.Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory" );
    props.put( Context.PROVIDER_URL,JNDI_PROVIDER_URL );

    Object lobj;
    InitialContext ctx;
    try{
        ctx = new InitialContext( props );

        lobj = ctx.lookup( REMOTE_LOOKUP_KEY );
        
        CustomServiceReferenceInterface remoteServiceRef = (CustomServiceReferenceInterface)javax.rmi.PortableRemoteObject.narrow(lobj,CustomServiceReferenceInterface.class);
        return remoteServiceRef;
    }
    catch( NamingException e ){
        // handle the exception
    }
,

尝试从另一个站点下载它,第二个 if 条件 如果它的语法看起来像这样,请尝试翻转符号 null == ejbref 因为它有时会给我错误

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...