当前位置:  技术问答>java相关

websphere 中如何设置搜索bean的路径

    来源: 互联网  发布时间:2014-12-22

    本文导语:  在websphere 中,如果从一个jsp页面中调用一个bean的话,websphere 肯定要去读这个 bean(jar file) 但是,路径应该在那里设置呢? eg: 我把bean(jar file)和这个jsp file 放在同一目录下,还是出错: java.lang.ClassNotFoundExceptio...

在websphere 中,如果从一个jsp页面中调用一个bean的话,websphere 肯定要去读这个
bean(jar file) 但是,路径应该在那里设置呢?

eg:


我把bean(jar file)和这个jsp file 放在同一目录下,还是出错:

java.lang.ClassNotFoundException: "Unable to load class global.GlobalJdbcBean

为什么?
应该在那里设置啊?

|
There are two different types of classpath for WebSphere, the Static Classpath and the Dynamic Classpath. The Static Classpath is specified as a commandline argument with the -classpath option for the Application Server Java Process and it is static in the sense that no new jars or directories can be added to this classpath once the Application Server is running. The classes in this classpath are loaded using the JVM primordial ClassLoader and hence this is also referred to as the System Classpath. The Dynamic Classpath is dynamic in the sense that new jar files or directories containing EJB or Servlet classes can be added to this classpath while the Application Server Java Process is running. The classes in this classpath are loaded by using a heirarchy of ClassLoaders which are defined within the Application Server Java Process. 

Static Classpath

The static classpath for an Application Server Java Process is constructed in the following manner. 
1. The first element in the static classpath is the classpath which is specified in the commandline arguments of the Application Server via the -classpath option. Alternatively, this classpath can be set from the Application Server property panel to the environment of the Application Server with the variable CLASSPATH. 
2. The second element in the static classpath is formed by taking the list of JDBC drivers installed on the node and adding the jar files containing these drivers to the static classpath.
3. The third element is formed by the classpath of the Adminserver process.  The Adminserver in turn, obtains its classpath in either of the two following ways. From the environment variable CLASSPATH (Note: that the CLASSPATH environment variable is set inside the script adminserver.[bat|sh], if it is started via the adminserver.[bat|sh] file or from the property com.ibm.ejs.sm.adminserver.classpath in the admin.config file, if it is started using the startupServer.sh script (Unix) or from the NT Services panel (NT). There is option to override this behavior, this can be achieved by setting the property com.ibm.ejs.sm.adminServer.managedServerClassPath in the admin.config file. This will force the Application Server Java Process to use the value of the aforementioned property instead of the classpath of the Adminserver.

 This classpath can be observed by enabling trace for the class “com.ibm.ejs.sm.active.ActiveEJBServerProcess=all=enabled” for the Adminserver or the Node.

 Dynamic Classpath
 
 The dynamic classpath for an Application server is accessed by a heirarchy of ClassLoaders within the Application Server Java Process. These ClassLoader objects are also responsible for creating and maintaining their respective portions of the Dynamic Classpath. The ClassLoaders are organized as follows:
1. At the top of this hierarchy of ClassLoaders resides the EJBJarManager. This is a singleton i.e there is only one instance of this class in the Application Server Java Process. The EJBJarManager is responsible for maintaining the portion of the Dynamic Classpath which  contains the jars and directories necessary for all the EJBs deployed in the Application Server Java Process to which it belongs. These jars and directories are added during the process of deploying a EJB Jar into WebSphere. Users are allowed to specify directories and Jar files, which can contain dependant classes for EJBs via the Dependent Classpath property in the property panel of the Node. The Dependent Classpath is thus a part of the Dynamic Classpath and always precedes all the Jars and directories added during the process of deployment. The EJBJarManager singleton contains a  JarClassLoader which loads all the classes for all EJBs inside the concerned Application Server Java Process. This ClassLoader allows you to deploy EJBs to a running Application Server Java Process. This classloader can be debugged by enabling trace for the component: “com.ibm.ejs.util.jar.*=all=enabled” for the Application Server.

2. Below the JarClassLoader in this heirarchy comes the PowerClassLoader. There is one instance of a PowerClassLoader in every Web Application. The PowerClassLoader is responsible for maintaining the portion of the Dynamic Classpath which contains all the jars and directories which are specified in the classpath of the Web Application. This ClassLoader is also reloadable in the sense that that when it detects any changes in the directories or Jars specified in the Web Application classpath, it quiesces all the instances of the classes loaded from this classpath and reloads all the classes with a new instance of the classloader. The automatic reloading property can be set to false from the advanced tab of a Web Application, for improved performance.  This classloader also detects an jar files in the directories specified in the Web Application classpath and automatically loads them. So it is not necessary to specify a jar file explicitly in the Web Application classpath. Instead, the jar file can be placed in any of the directroies e.g the /servlets (this directory is automatically placed into the Web Application classpath) and it shall be picked up automatically by the PowerClassLoader. This ClassLoader can be debugged by enabling trace for the component: “com.ibm.servlet.classloader.*=all=enabled” for the Application Server.

The search order for loading a class
 
 The Application Server Java Process searches the aforementioned classpaths in the following order from top to bottom.
Ÿ Static Classpath
Ÿ Application Server commandline classpath or environment CLASSPATH
Ÿ Adminserver classpath (admin.config or adminserver.bat)
Ÿ Dynamic Classpath for the EJBJarManager
Ÿ Node Dependent classpath
Ÿ List of all the EJB Jars which have been deployed in the App Server
Ÿ Dynamic Classpath for the PowerClassLoader
Ÿ Web Application classpath.

|
将web应用程序设成按类名处理小服务程序
设置web应用程序的类路径为path/bean.jar就可以了

 

|
放在/weblogic/classes下试试

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教各位大侠websphere安装配置问题
  • websphere的最新版本是多少?这分好拿哟!:)
  • LINUX下如何实现开机后自动运行WebSphere?
  • 100分求linux下的websphere
  • linuxES3.0下 WebSphere进程经常自动停止问题? 小妹先谢了
  • 有谁在AIX下装过下载版的websphere
  • jbuilder 5 + Websphere3.5.4开发EJB的问题
  • About Websphere? too boring..
  • 请问WebSphere 是什么东东?它在什么操作系统下执行?谢谢!
  • 在websphere 下应该将我自己的类放在哪里才能让我的jsp程序访问到??
  • 缓存解决方案 WebSphere eXtreme Scale
  • 请教,如何在WebSphere中配置HttpSessionListener?
  • 谁知道websphere的试用版怎么做掉?
  • Websphere下的数据库连接,connection pool问题
  • 请告诉我websphere4的详细安装步骤
  • 关于websphere的问题(急)
  • websphere布署完.ear后用什么端口访问?
  • Websphere不刷新的问题。
  • ibm websphere的用法:请关注!
  • HTML标签参考手册 iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3