universityhelper.java
来自「weblogic应用全实例」· Java 代码 · 共 219 行
JAVA
219 行
//声明这个类包含在包jsp_servlet中
package jsp_servlet;
//声明这个类引入的其它类或包
import java.io.*;
import java.util.Properties;
import weblogic.html.*;
import org.omg.CORBA.*;
import com.beasys.Tobj.*;
import com.beasys.*;
/* 这些类来自WebLogic Enterprise University 实例 */
import UniversityT.RegistrarFactory;
import UniversityT.RegistrarFactoryHelper;
import UniversityT.Registrar;
/**
* 这个实例演示一个WebLogic服务器怎样连接WebLogic Enterprise,
* 调用CORBA对象。这包括一套被jsp servlets调用的方法。
* 当Weblogic服务器启动时,它打开WebLogic Enterprise IIOP监听器的多个连接。
* servlet从连接池选取一个连接,即作为一个WebLogic Enterprise客户端,并获取客户端上下文。
* 然后servlet查找factory finder和Registrar factory,并获取Registrar对象。
* 当用户发送form请求, 相应的操作被调用。
* 服务器执行请求操作,并把结果数据以HTML形式发送到servlet。
*/
public class UniversityHelper {
//声明变量
public UniversityT.Registrar gRegistrarObjRef;
public UniversityT.StudentDetails gStudentDetails;
public org.omg.CosTransactions.Current gTransCur = null;
/**
* 初始化方法
* @异常 Exception 如果servlet错误
*/
public void univInit() throws Exception
{
byte[] userData = new byte[0];
String clientName = "university_client";
try {
// 创建bootstrap对象,
Tobj_Bootstrap bootstrap =
BootstrapFactory.getClientContext("Univpool");
// 获取Factory Finder
org.omg.CORBA.Object Off =
bootstrap.resolve_initial_references("FactoryFinder");
// 验证factory finder.
FactoryFinder Ff = FactoryFinderHelper.narrow(Off);
// 通过id查找Factory
org.omg.CORBA.Object Of =
Ff.find_one_factory_by_id(UniversityT.RegistrarFactoryHelper.id());
// 验证factory.
UniversityT.RegistrarFactory F =
UniversityT.RegistrarFactoryHelper.narrow(Of);
// 请"RegistrarFactory"创建一个Registrar对象
gRegistrarObjRef = F.find_registrar();
if (gRegistrarObjRef == null)
{
System.err.println("factory returned nil");
throw new Exception();
}
// 获取当前事务对象
try
{
org.omg.CORBA.Object transCurObj =
bootstrap.resolve_initial_references("TransactionCurrent");
gTransCur = org.omg.CosTransactions.CurrentHelper.narrow(transCurObj);
}
catch(com.beasys.Tobj.InvalidName e)
{
//异常处理
System.err.println("Invalid name: " + e);
throw new Exception(e.toString());
}
}
catch (org.omg.CosLifeCycle.NoFactory e) {
//异常处理
System.err.println("Can't find the Registrar factory: " +e);
throw new Exception(e.toString());
}
catch (CannotProceed e) {
//异常处理
System.err.println("FactoryFinder internal error: " +e);
throw new Exception(e.toString());
}
catch (RegistrarNotAvailable e) {
//异常处理
System.err.println("FactoryFinder Registrar not available: " +e);
throw new Exception(e.toString());
}
catch (InvalidName e) {
//异常处理
System.err.println("Invalid name from resolve_initial_reference(): " +e);
throw new Exception(e.toString());
}
catch (org.omg.CORBA.BAD_PARAM e) {
//异常处理
System.err.println("Invalid TOBJADDR=//host:port property specified: " +e);
throw new Exception(e.toString());
}
catch (org.omg.CORBA.UserException e) {
//异常处理
System.err.println("Unexpected CORBA user exception: " +e);
throw new Exception(e.toString());
}
catch (org.omg.CORBA.SystemException e) {
//异常处理
System.err.println("CORBA system exception: " +e);
throw new Exception(e.toString());
}
}
// 这个方法返回当前事务对象
public org.omg.CosTransactions.Current getTransCur()
{
return gTransCur;
}
// 通过调用Registrar对象来验证学生
public boolean verifyStudent(String studentIden) throws Exception
{
int studentId = Integer.parseInt (studentIden);
boolean validId = true;
try
{
// 调用相应的方法获取学生的详细信息
gStudentDetails =
gRegistrarObjRef.get_student_details(studentId);
}
catch(org.omg.CORBA.OBJ_ADAPTER e)
{
//异常处理
validId = false;
}
catch(org.omg.CORBA.NO_IMPLEMENT e)
{
//异常处理
validId = false;
}
catch(org.omg.CORBA.BAD_PARAM e)
{
//异常处理
validId = false;
}
catch(org.omg.CORBA.SystemException e)
{
//异常处理
validId= false;
throw new Exception(e.toString());
}
return validId;
}
// 这个方法获取课程列表
public UniversityT.CourseSynopsis[] get_courses(String aCriteria) throws Exception
{
final int CHUNK_SIZE = 0;
org.omg.CORBA.IntHolder numberRemaining = new org.omg.CORBA.IntHolder();
UniversityT.CourseSynopsisEnumeratorHolder theRest =
new UniversityT.CourseSynopsisEnumeratorHolder();
UniversityT.CourseSynopsis[] listOfCourses = null;
try {
listOfCourses =
gRegistrarObjRef.get_courses_synopsis(aCriteria, CHUNK_SIZE,
numberRemaining, theRest);
}
catch(org.omg.CORBA.SystemException e)
{
throw new Exception(e.toString());
}
return listOfCourses;
}
// 这个方法获取课程详细信息
public UniversityT.CourseDetails[] get_course_details(String courseNum)
throws Exception
{
int[] selectedCourses;
selectedCourses = new int[1];
int course_num = Integer.parseInt (courseNum);
UniversityT.CourseDetails[] details=null;
selectedCourses[0] = course_num;
try
{
// 调用Registrar对象的方法
details =
gRegistrarObjRef.get_courses_details(selectedCourses );
}
catch(org.omg.CORBA.SystemException e)
{
//抛出异常
throw new Exception(e.toString());
}
return details;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?