jdk 1.7.21 から jdk 1.7.25 に更新された jdk バージョンがあり、Solaris 10 でビルドされ、Windows Server 2003 で運用が実行されます。ビルドが成功したので、今回は Java コードを更新していません。Java コードを更新します。 1.6.45 から jdk 1.7.xx への jdk などでコンパイルでエラーが発生した場合、jdk 1.7 API の変更に合わせていくつかのファイルを更新する必要があります。 .7.21、毎回更新で大丈夫でした。しかし、今回は、1.7.21 ソース コードから jdk 1.7.25 をビルドした後、コンパイルは問題ありませんでしたが、実行時にサーバーは正常に動作しましたが、クライアントが途中でスタックしました - SESSION_ADAPTER ビルドが失敗しました。OPNORG 1.2 を使用しました。は 10 年以上前のもので、サードパーティのバイナリ コードのみです。jdk 1.7.25 の実際の問題はどこにあるのだろうか?
「古い学校」のスキルを使用して、どの行が壊れているかを出力しました。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;
}
}
過去 2 週間のことはわかりませんが、教祖から Java/IDL のスキルを少し借りることができれば幸いです。
ありがとう、カーティス