0

我有一个从 jdk 1.7.21 更新到 jdk 1.7.25 的 jdk 版本,构建在 Solaris 10 上,生产运行在 windows server 2003 上。这次我没有更新任何 java 代码,因为构建成功,我会更新 java 代码如果编译遇到错误,例如在 jdk 从 1.6.45 到 jdk 1.7.xx,我必须更新一些文件以匹配 jdk 1.7 API 更改,然后它运行正常,从 jdk 1.7.xx 到 jdk1 有一些更新.7.21,每次更新都很好。但这一次,从 1.7.21 源代码构建 jdk 1.7.25 后,编译正常,但运行时服务器运行正常,但客户端卡在中间 - 有一个 SESSION_ADAPTER 构建失败,我们使用了 OPNORG 1.2已超过 10 年,并且只有第 3 方二进制代码。想知道 jdk 1.7.25 的真正问题在哪里?

我使用“old school”技能打印出哪条线断了,它看起来卡在了narrow(orb)的功能中,得到了“BAD_PARAM”的异常:

这是java文件(它是由CORBA IDL生成的,我们没有OPNORG的源代码):

package DPEM.src.presentation.adaptation.adaptationIfc;

//
// Helper class for : SessionAdapter
//
// @author OpenORB Compiler
//
public class SessionAdapterHelper
{
//
// Insert SessionAdapter into an any
// @param   a an any
// @param   t SessionAdapter value
//
public static void insert( org.omg.CORBA.Any a, DPEM.src.presentation.adaptation.adaptationIfc.SessionAdapter t )
{
    a.insert_Object( t , type() );
}

//
// Extract SessionAdapter from an any
// @param   a an any
// @return the extracted SessionAdapter value
//
public static DPEM.src.presentation.adaptation.adaptationIfc.SessionAdapter extract( org.omg.CORBA.Any a )
{
    if ( !a.type().equal( type() ) )
        throw new org.omg.CORBA.MARSHAL();
    try {
        return DPEM.src.presentation.adaptation.adaptationIfc.SessionAdapterHelper.narrow( a.extract_Object() );
    }
    catch ( org.omg.CORBA.BAD_PARAM ex ) {
        throw new org.omg.CORBA.MARSHAL();
    }
}

//
// Internal TypeCode value
//
private static org.omg.CORBA.TypeCode _tc = null;

//
// Return the SessionAdapter TypeCode
// @return a TypeCode
//
public static org.omg.CORBA.TypeCode type()
{
    if ( _tc == null ) {
        org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init();
        _tc = orb.create_interface_tc(id(),"SessionAdapter");
    }
    return _tc;
}

//
// Return the SessionAdapter IDL ID
// @return an ID
//
public static String id()
{
    return _id;
}

private final static String _id = "IDL:adaptation.presentation.src.DPEM/adaptationIfc/SessionAdapter:1.0";

//
// Read SessionAdapter from a marshalled stream
// @param   istream the input stream
// @return the readed SessionAdapter value
//
public static DPEM.src.presentation.adaptation.adaptationIfc.SessionAdapter read( org.omg.CORBA.portable.InputStream istream )
{
    return( DPEM.src.presentation.adaptation.adaptationIfc.SessionAdapter )istream.read_Object( DPEM.src.presentation.adaptation.adaptationIfc._SessionAdapterStub.class );
}

//
// Write SessionAdapter into a marshalled stream
// @param   ostream the output stream
// @param   value SessionAdapter value
//
public static void write( org.omg.CORBA.portable.OutputStream ostream, DPEM.src.presentation.adaptation.adaptationIfc.SessionAdapter value )
{
    ostream.write_Object((org.omg.CORBA.portable.ObjectImpl)value);
}

//
// Narrow CORBA::Object to SessionAdapter
// @param   obj the CORBA Object
// @return SessionAdapter Object
//
public static SessionAdapter narrow( org.omg.CORBA.Object obj )
{
    if ( obj == null )
        return null;
    if ( obj instanceof SessionAdapter )
        return ( SessionAdapter)obj;

    if ( obj._is_a( id() ) )
    {
        _SessionAdapterStub stub = new _SessionAdapterStub();
        stub._set_delegate( ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate() );
        return stub;
    }

    throw new org.omg.CORBA.BAD_PARAM();
}

//
// Unchecked Narrow CORBA::Object to SessionAdapter
// @param   obj the CORBA Object
// @return SessionAdapter Object
//
public static SessionAdapter unchecked_narrow( org.omg.CORBA.Object obj )
{
    if ( obj == null )
        return null;
    if ( obj instanceof SessionAdapter )
        return ( SessionAdapter)obj;

    _SessionAdapterStub stub = new _SessionAdapterStub();
    stub._set_delegate( ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate() );
    return stub;

}

}

过去两周我不知道,希望能从各位大师那里借一点 java/IDL 技能。

谢谢,柯蒂斯

4

0 回答 0