Replication of utility/helper classes in JAR/WAR.

Hello folks,
I have recently learned the class loader hierarchy that is employed in
the WebLogic server. Previously, I was including the local component
interfaces of my EJBs in the EJB JAR file as well as the web
application WAR file. However, since the EJB class loader is the
superclass of the WAR class loaders, the WAR class loader can see all
classes in its level as well as the level above it (the EJB class
loader and system class loader). Therefore, I removed the Local
component interfaces from the WAR file, and the system works fine.
However, I have various utility/helper classes that are in the EJB JAR
file as well as the WAR file. Is it safe to remove them from the WAR
file? Is there any need to duplicate classes in the JAR/WAR file if
they are packaged together as an EAR file? Any input is highly
appreciated.
Best regards,
Ryan LeCompte
[email protected]
http://www.louisiana.edu/~rml7669

No, your helper classes will also be visible to the war class loader.
You might also consider packaging your helper classes in a separate jar
file. Then add a manifest class-path entry in your ejb.jar and your
web.war that references the utility jar file(s). This should work on
any J2EE server.
-- Rob
Ryan LeCompte wrote:
Hello folks,
I have recently learned the class loader hierarchy that is employed in
the WebLogic server. Previously, I was including the local component
interfaces of my EJBs in the EJB JAR file as well as the web
application WAR file. However, since the EJB class loader is the
superclass of the WAR class loaders, the WAR class loader can see all
classes in its level as well as the level above it (the EJB class
loader and system class loader). Therefore, I removed the Local
component interfaces from the WAR file, and the system works fine.
However, I have various utility/helper classes that are in the EJB JAR
file as well as the WAR file. Is it safe to remove them from the WAR
file? Is there any need to duplicate classes in the JAR/WAR file if
they are packaged together as an EAR file? Any input is highly
appreciated.
Best regards,
Ryan LeCompte
[email protected]
http://www.louisiana.edu/~rml7669

Similar Messages

  • How to bundle java help class into jar file ?

    Hi, all,
    I have some package in my project, with which I have a java help jar file as classpath, when I run my project, I need the jh.jar file in directory /jar/jh.jar.
    Now, I bundled all my class packages into a jar file, my.jar, together with the /jar directory. When i run my jar file with command:
    java -jar my.jar
    It tells me couldn't find javahelp class.
    What shall I do? How can I create my jar file with the jh.jar?
    Thanks in advance.

    I think you'd be better off just adding the jh.jar as
    a classpath argument and running it like that:
    java -classpath /myjavalibdir/jh.jar -jar myjar.jar
    ...otherwise you're stepping into redistribution of
    binary issues licensing-wise. That won't work either; when you run java with the -jar option, it ignores both the -classpath option and the CLASSPATH environment variable. However, it will see jh.jar automatically if you put it in the <path-to-java>/jre/lib/ext directory. But for distribution purposes, it might be simpler just to combime the contents of jh.jar into myjar.jar (if you use Ant, its <jar> task makes that very easy). Or, you can just run it this way:java -classpath myjar.jar;jar/jh.jar MyMainClassBTW, I don't think redistribution is a problem; otherwise how anyone even use JavaHelp?

  • JAR in a WAR Classloading a .class from the WARs web-inf/class

    A little backround on my environment:
    I have a jar that contains some common functionality (common.jar) that is shared among all my web apps. There is a scheduler function in the JAR that queries the applications datasource for schedules to run. Each schedule contains a class that implements the interface ScheduleCommand and has an execute method. The ScheduleManager get the list of schedules from the db and uses a classloader to load the schedule command and call the execute method.
    ScheduleCommand cmd = (ScheduleCommand) Class.forName(scheduleCommands.getClassName()).newInstance();
    The issue:
    I have some common schedule command in the common.jar like clean temp folder, monitor memory, etc. I also want to be able to include additional schedule commands in the WAR that are unique to that web app.
    WAR
    --web-inf
    ----classes
    ------CustomScheduleCommand.class
    ----lib
    ------common.jar
    When I do this however the ScheduleManager in the common.jar is not able to find the CustomScheduleCommand.class in the WAR�s web-inf/classes. Do I need to use a different classloader or do I need to add a classpath to the manifest of the WAR?

    Hi Michael,
    there are diffrent options to do this, depending on whats needs to be achieved.
    a) Easiest way (but only possible, if no action has to go back to your template): Create an RRI-Jump-Target to your ABAP report
    b) Also only possible when no additional interaction on your template has to take place: Create a bsp and call the bsp when clicking on the button. Advantage in comparison to a) you could get a new window with for example a sucess or error message
    c) Use an own helpservice class. Now this as you have seen can get more complex, as interaction with your webtemplate can take place. In principal you need to create a class inherit from cl_rsr_www_help_window and overwrite the process_cmd method. Now you can paste your coding inside and you are finished (when you register the help service class to a web item).
    Heike

  • Including helper classes in java proxy jar file

    I must not be using the right header search criteria because I'm sure this question
    has been asked before. In a Web Service File (.jws) I've imported a couple of
    helper classes that function as data transfer objects. I did this to maintain
    consistency with other portions of the application. The Java Proxy jar file generated
    by Workshop does not include these files. Is there a way of including these dependencies
    or do I need to distribute another jar file with my helper classes?

    Hi Naichen,
    I was able to successfully run both the autotype and clientgen Ant task, on the
    WSDL you provided. The code behind those Ant tasks are pretty much what the WebLogic
    Web Services test page run. Are you using WLS 8.1 SP2? If not, you might want
    to try with that version.
    Regards,
    Mike Wooten
    "Naichen Liu" <[email protected]> wrote:
    >
    >
    >
    Hi,
    I am having a warning message when trying to generate java proxy jar
    file on weblogic8.1
    webservice test web app, the message is as follows:
    "Warning Failed to generate client proxy from WSDL definition for this
    service.
    Prescription Please verify the <types> section of the WSDL."
    in the mean time, on weblogic starting terminal, I saw the following
    exceptions,
    C:\DOCUME~1\u252738\LOCALS~1\Temp\wlwproxy37508.jar1533409921\com\ual\www\rcc\cb
    t\schema\modifypnr\AlphaLength4Deserializer.java:36: cannot resolve symbol
    symbol : class FacetUtils
    location: package binding
    weblogic.xml.schema.binding.FacetUtils.checkLengthFacet(__typed_obj,4L);
    ^
    C:\DOCUME~1\u252738\LOCALS~1\Temp\wlwproxy37508.jar1533409921\com\ual\www\rcc\cb
    t\schema\modifypnr\OSIFieldAnonTypeDeserializer.java:36: cannot resolve
    symbol
    symbol : class FacetUtils
    location: package binding
    weblogic.xml.schema.binding.FacetUtils.checkMaxLengthFacet(__typed_obj,69L);
    ^
    C:\DOCUME~1\u252738\LOCALS~1\Temp\wlwproxy37508.jar1533409921\com\ual\www\rcc\cb
    t\schema\modifypnr\AlphaLength2Deserializer.java:36: cannot resolve symbol
    symbol : class FacetUtils
    location: package binding
    weblogic.xml.schema.binding.FacetUtils.checkLengthFacet(__typed_obj,2L);
    ^
    C:\DOCUME~1\u252738\LOCALS~1\Temp\wlwproxy37508.jar1533409921\com\ual\www\rcc\cb
    t\schema\modifypnr\FreeFormAnonTypeDeserializer.java:36: cannot resolve
    symbol
    symbol : class FacetUtils"
    Can anybody help me about this issue? I attached WSDL file, also United
    Airlines
    got an enterprise weblogic license deal with BEA, any help will be highly
    appreciated.
    Thanks!!!
    Naichen

  • Referencing utility classes from a war file

    How do you reference a utility class from a war file? I tried adding the class to the deployment plan descriptor, however I still get a ClassNotFoundException.
    Thanks,
    Will

    To use the utility classes from a war you have to place them under the web-inf/classes directory.
    webApplication(WAR directory)--->WEB-INF--> classes (put your utility classes in this directory)

  • Versioning JAR/WAR/EAR and CLASS files

    Does anyone know of a standard, defined and recommended way of versioning JAR/WAR/EAR files?
    I guess I can put version information in the Manifest.mf file, but is there a recommended way?
    Another related question is how do I go about versioning individual class files?

    There's not only a recommended way, but a standard way. See http://java.sun.com/products/jdk/1.2/docs/guide/versioning/spec/VersioningSpecification.html#PackageVersioning).
    However, I've found that this practice is unfortunately not as widespread as one would like. sigh
    What do you mean by "versioning" individual class files (in a JAR, I assume you mean)? In general that's a bad idea. But perhaps I misunderstand what you mean.

  • WAR Can't find class in JAR file in EAR/lib

    Hi,
    I have 1 EAR file with 1 WAR and 1 EJB-JAR file. Our main business-code is in a JAR-file which is placed in the EAR/lib/ folder along with the rest of the shared JAR-files.
    When i deploy the EAR the EJB gets deployed fine but when the WAR gets deployed, we get a ClassNotFoundException. We configured a class as a ServletContextListener (Which is part of the jar) in the web.xml so at startup it should perform some initiation. But since it can;t be found....
    I've tried changing the Mainfest.mf to include a CLASSPATH attribute with ./lib/x.jar but it stil the same problem. The only thing that solves it is to put it in the WEB-INF/lib folder.
    What am i doing wrong?
    Thanks,
    Maarten

    Here it is
    <?xml version="1.0"?>
    <!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN' 'http://java.sun.com/dtd/application_1_3.dtd'>
    <application>
         <display-name>spg-online</display-name>
         <module>
              <web>
                   <web-uri>appname.war</web-uri>
                   <context-root>appname</context-root>
              </web>
         </module>
         <!--module>
              <ejb>appname-ejb.jar</ejb>
         </module-->     
    </application>
    My app follows the basic structure of an EAR-file:
    EAR
    META-INF
    application.xml
    lib
    appname.jar
    a.jar
    spring.jar
    appname.war
    appname-ejb.jar
    The meta-inf of the war-file looks like this:
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.6.5
    Created-By: 1.4.2_08-b03 (Sun Microsystems Inc.)
    Class-path: ./lib/appname.jar ./spring.jar
    I let ANT generate the Class-path:
    <jar jarfile="${dist.home}/${component.name}.war">
    <fileset dir="${build.home.webroot}" />
    <!-- dependency -->
    <manifest>
    <attribute name="Class-Path" value="${lib.project.manifest.classpath}"/>
    </manifest>
    </jar>

  • Reference EJB from servlet's action/helper classes

    Hello
    How to make a reference to stateless session bean from one of the helper classes of a servlet WITHOUT using any of these:
    * dependency injection (like @EJB) - I think this is not supported in this kind of class, EJB references can be injected only to servlets themselves or some other things (but not objects of classes "accompanying" a servlet)
    * home or local home interfaces (I would like to avoid writing them)
    * using mappedName (either in @Stateless or in ejb-jar) - since meaning of this is application-server dependent and thus not portable.
    By a "class accompanying a servlet" / "helper class" I mean utility or action classes, like MyActionClass, which would be instantiated and then used by a aforementioned servlet.
    Thanks.

    The EJB dependency must be looked up via the java:comp/env namespace since as you point out
    Java EE 5 environment annotations are not supported on POJOs. However, the dependency itself
    can either be defined using @EJB on some other managed class in the .war or within the
    web.xml. We have an entry in our EJB FAQ that has the details :
    https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#POJOLocalEJB
    Also, whenever the client component resides in the same application as the target EJB (which is
    required for Local access but not for Remote access) there is no need to use mappedName to
    resolve the EJB dependency. It is either automatically resolved if the business interface type of
    the EJB dependency is only exposed by a single EJB in the application, OR the beanName()
    / ejb-link attributes can be used to unambiguously identify the target EJB using ejb-name.
    You can find more about this in the FAQ as well.

  • XSLT mapping with Java helper classes

    Hi,
    I'm trying to implement a XSLT mapping to convert my request to a specific soap request message format for this I'm calling some methods from a java helper class. I have imported the jar file into the archives. When I tried to test the interface it keeps complaing there is some exception but doesn't give me the exact error. Has any one called any java helper classes with in XSLT mapping, if so I would appreciate if you could help me with this. Here is the code from xsl.
    <wsse:Security soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"   xmlns:UserToken="java:com.company.test.mapping.UserTokenMap">
    <wsse:UsernameToken>
        <wsse:Username xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <xsl:value-of select="UserToken:getUsername()"/>
        </wsse:Username>
        <wsse:Password wsse:Type="wsse:PasswordDigest" xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getPasswordDigest()"/>
        </wsse:Password>
        <wsse:Nonce xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getNonce()"/>
        </wsse:Nonce>
        <wsu:Created xsi:type="soapenc:string" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getCreateDate()"/>
    </wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
    Thanks,
    Joe

    Hi,
    I'm getting following exception when I refer to the java class with in my XSLT mapping. Any one encountered the same problem.
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:218)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native
    Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)
         at java.lang.ClassLoader.defineClass0(Native
    Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
         at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
         at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
         at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:56)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:43)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:51)
         at com.sap.engine.lib.xsl.xslt.XSLValueOf.process(XSLValueOf.java:76)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:463)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:431)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:394)
         at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:398)
         at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:240)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepSequenceMapping.execute(RepSequenceMapping.java:54)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
         at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:167)
         ... 10 more
    ; nested exception is:
         java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)

  • Class to jar communication at run time

    Hi,
    I am developing a application using jdk 1.4 and have following query:
    I have an application that displays some information in various languages (according to the language selected), i.e english, french, german etc. Say I select english, the application will display "Hello World" in English language and so on for other languages..
    So my app is divided into three parts:
    1) Core application : displaying information
    2) XML file: Containing list of languages in XML format. This XML File can be updated for adding new languages. The format of XML file is somewhat as
    <LANGUAGE_NAME>___</LANGUAGE_NAME>
    <CLASS_LANG>____</CLASS_LANG>
    3) A seprate JAR file :Having set of classes corresponding to each language. The JAR file should be such that we can add classes for new languages added.
    The Workflow of app is as follows:
    When ever we run the application, the application reads the list of languages from the XML file and populats the list in a drop-down list box. Now, upon clicking a "GO" button, the application checks the language selected and calls the JAR will. It sends the class name corresponding to the language selected. And the class should return the information back to the application.
    Now, this process should be dynamic, i.e user can update XML with new language and update the JAR file with new class name.
    And upon just re-running the application, the application should be able to use features of new language.
    Consider that we have already shipped the application. All we have to do is to send updated JAR file to the user. and ask him to update the XML file for new language. i.e no changes to be done at application. And application should communicate with update JAR files at the end user.
    Now I have following queries:
    1) Is the above process possible? If yes, then
    2) How to communicate my application with the new class files in JAR file. i.e how to communicate my class with the UPDATED class in JAR file. Any prototype code to achieve this functionality would be of great help. Remember all this need to happen at run time.
    I hope my question is clear. Feel free to ask any queries.
    Thanks,
    rdh

    Java has a mechanism to cope with this - though it is not XML-based:
    java.util.ResourceBundle
    I would store the required resource (a property file or the XML or a jar) separately.

  • Helper class invoking by servlet cannot find file.

              Hi,
              I have the following file structure in the war for my web application.
              WEB-INF/classes/com/olf/servlets/AppServlet.class
              WEB-INF/classes/com/olf/util/CommonUtil.class
              WEB-INF/classes/com/olf/util/JndiUtil.class
              WEB-INF/classes/com/olf/util/jndi.xml
              When the JndiUtil is invoked by the CommonUtil , the JndiUtil has no problem to
              locate the jndi.xml; however, when
              the JndiUtil class is invoked by the AppServlet. An exception thrown from the
              JndiUtil states that it can't locate
              the XML file from WebLogic Home directory. Does anyone know why the search is
              done on WebLogic Home or even got up there?
              Any help is greatly appreciate!
              kenny
              In AppServlet.class
              ===================
              public void init(ServletConfig config) throws ServletException
                   InitialContext ic = JndiUtil.getInstance().getInitialContext();
              In JndiUtil.class
              public final static JndiUtil getInstance()
                   SAXParserFactory factory = SAXParserFactory.newInstance();
                   SAXParser saxParser = factory.newSAXParser();
                   saxParser.parse(new File("jnid.xml"), handler);
                   catch (SAXException e){
                        e.printStackTrace();
                        System.out.println("SAXException:" + e.getMessage());
              Below is the exception thrown by the SAX parser
              org.xml.sax.SAXParseException: File "file:C:/bea/wlserver6.1/jndi.xml" not found.
              at weblogic.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1088)
              at weblogic.apache.xerces.readers.DefaultEntityHandler.startReadingFromDocument(DefaultEntityHandler.java:512)
              at weblogic.apache.xerces.framework.XMLParser.parseSomeSetup(XMLParser.java:310)
              at weblogic.apache.xerces.framework.XMLParser.parse(XMLParser.java:966)
              at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:123)
              at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:125)
              at javax.xml.parsers.SAXParser.parse(SAXParser.java:346)
              at javax.xml.parsers.SAXParser.parse(SAXParser.java:286)
              at com.olf.util.JndiUtil.getInstance(JndiUtil.java:59)
              at com.olf.servlets.AppServlet.init(AppServlet.java:60)
              at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:700)
              at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:643)
              at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:588)
              at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:368)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:242)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              

    Since your class may be used by other subsystems also you can write a
              small abstract class or an interface for example
              interface ResourceHandler {
              public InputStream getStream();
              and make our method take ResourceHandler as an argument.
              which can be used as follows
              JndiUtil.someMethod(new ResourceHandler(){
              public InputStream getStream(String name){
                             return context.getResourceAsStream("name");
              u can create a new inner class to serve a different purpose..
              e.g. standalone
              JndiUtil.someMethod(new ResourceHandler(){
              public InputStream getStream(String name){
                             return new FileInputStream(name);
              hope this helps
              nagesh
              PS: ooh yes, make this method throw an IOException      
              and also you can use an abstract class if u have any
              common logic to be added to this class..
              Kenny wrote:
              >
              > Nagesh,
              >
              > Thanks for the thought! However, by using the ServletContext, the JndiUtil class
              > would be tighted to the Servlet Container because it expects the caller passing
              > in a ServletContext. I would like to make the JndiUtil class shared by other
              > components in the system instead of only serving Servlets.
              >
              > Do you know if there is a way to locate a file in the system regardless which
              > container the call is in?
              >
              > Thanks!
              > kenny
              > Nagesh Susarla <[email protected]> wrote:
              > >try using ServletContext.getResourceAsStream()
              > >
              > >Kenny wrote:
              > >>
              > >> Hi,
              > >>
              > >> I have the following file structure in the war for my web application.
              > >>
              > >> WEB-INF/classes/com/olf/servlets/AppServlet.class
              > >>
              > >> WEB-INF/classes/com/olf/util/CommonUtil.class
              > >> WEB-INF/classes/com/olf/util/JndiUtil.class
              > >> WEB-INF/classes/com/olf/util/jndi.xml
              > >>
              > >> When the JndiUtil is invoked by the CommonUtil , the JndiUtil has no
              > >problem to
              > >> locate the jndi.xml; however, when
              > >> the JndiUtil class is invoked by the AppServlet. An exception thrown
              > >from the
              > >> JndiUtil states that it can't locate
              > >> the XML file from WebLogic Home directory. Does anyone know why the
              > >search is
              > >> done on WebLogic Home or even got up there?
              > >>
              > >> Any help is greatly appreciate!
              > >> kenny
              > >>
              > >> In AppServlet.class
              > >> ===================
              > >> public void init(ServletConfig config) throws ServletException
              > >> {
              > >> ...
              > >>
              > >> InitialContext ic = JndiUtil.getInstance().getInitialContext();
              > >> ...
              > >> }
              > >>
              > >> In JndiUtil.class
              > >>
              > >> public final static JndiUtil getInstance()
              > >> {
              > >> ...
              > >>
              > >> SAXParserFactory factory = SAXParserFactory.newInstance();
              > >> SAXParser saxParser = factory.newSAXParser();
              > >> saxParser.parse(new File("jnid.xml"), handler);
              > >>
              > >> ...
              > >> catch (SAXException e){
              > >> e.printStackTrace();
              > >> System.out.println("SAXException:" + e.getMessage());
              > >> }
              > >> ...
              > >> }
              > >>
              > >> Below is the exception thrown by the SAX parser
              > >>
              > >> org.xml.sax.SAXParseException: File "file:C:/bea/wlserver6.1/jndi.xml"
              > >not found.
              > >> at weblogic.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1088)
              > >> at weblogic.apache.xerces.readers.DefaultEntityHandler.startReadingFromDocument(DefaultEntityHandler.java:512)
              > >> at weblogic.apache.xerces.framework.XMLParser.parseSomeSetup(XMLParser.java:310)
              > >> at weblogic.apache.xerces.framework.XMLParser.parse(XMLParser.java:966)
              > >> at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:123)
              > >> at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:125)
              > >> at javax.xml.parsers.SAXParser.parse(SAXParser.java:346)
              > >> at javax.xml.parsers.SAXParser.parse(SAXParser.java:286)
              > >> at com.olf.util.JndiUtil.getInstance(JndiUtil.java:59)
              > >> at com.olf.servlets.AppServlet.init(AppServlet.java:60)
              > >> at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:700)
              > >> at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:643)
              > >> at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:588)
              > >> at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:368)
              > >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:242)
              > >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
              > >> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
              > >> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
              > >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              > >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              

  • No manifiest section for signature file entry iaik/utils/IaikSecurity.class

    Why I got this exception when running my jar with:
    java -jar My.jar
    Exception:
    Exception in thread "main" java.lang.SecurityException: no manifiest section for signature file entry iaik/utils/IaikSecurity.class
    at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:260)
    at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:172)
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:239)
    at java.util.jar.JarVerifier.update(JarVerifier.java:194)
    at java.util.jar.JarFile.initializeVerifier(JarFile.java:300)
    at java.util.jar.JarFile.getInputStream(JarFile.java:362)
    at sun.misc.URLClassPath$5.getInputStream(URLClassPath.java:616)
    at sun.misc.Resource.getBytes(Resource.java:57)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

    his link contains tools for jar and signiture, maybe it helps
    http://www.syncedit.com/jedit_details.html
    it is very interesting

  • Help needed: getting jar files to work.

    Right, to start off, i have been doing php and mysql for a long time and i thought it's time to start using java.
    So now im trying to create an application. I use eclipse. All works well if i run the program from eclipse. But i want to create and executable or a jar file first. I used JSmooth but with that i get an error "Could not find the main class".
    While exporting the project as a jar i specified the main class in manifest specification.
    So these are my classes:
    the Main.class
    public class Main{
         public static void main(String[] args)  {
              PageFrame page = new PageFrame();
              page.show();
    }and the PageFrame.class
    import java.net.*;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    class PageFrame extends JFrame implements ActionListener,MouseListener{
         String[] skillnames = {"attack","hitpoints","mining","strength","agility","smithing","defence","herblore","fishing","ranged","thieving","cooking",
                   "prayer","crafting","firemaking","magic","fletching","woodcutting","runecraft","slayer","farming","construction","hunter","summoning"};
         JTextField username = new JTextField("",12);
         JTextArea box = new JTextArea(10,12);
         JButton search = new JButton("Search");
         int[] differences = {0,83,174,276,388,512,650,801,969,1154,1358,1584,1833,2107,2411,2746,3115,3523,3973,4470,5018,5624,6291,7028,7824,
                   8740,9730,10824,12031,13363,14833,16456,18247,20224,22406,24815,27473,30408,33648,37224,41171,45529,50339,55649,61512,67983,
                   75127,83014,91721,101333,111945,122660,136594,150872,166636,184040,203254,224466,247886,273742,302288,333804,368599,407015,
                   449428,496254,547953,605032,668051,737627,814445,899257,992895,1096278,1210421,1336443,1475581,1629200,1798808,1986068,2192818,
                   2421087,2673114,2951373,3258594,3597792,3972294,4385776,4842295,5346332,5902831,6517253,7195629,7944614,8771558,9684577,10692629,
                   11805606,13034431,14567891};
         URL page;
         static String name;
         JLabel[] skills  = new JLabel[24];
         JLabel skillicons  = new JLabel();
         public PageFrame(){
              super("Stats Lookup");
              setSize(800,600);
              setResizable(false);
              try{
                   UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
                   SwingUtilities.updateComponentTreeUI(this);
              }catch (Exception e){
                   System.err.println("Yo" + e);
              //teen labelid;
              for (int i = 0; i < skills.length;i++){
                   ImageIcon icon = new ImageIcon(PageFrame.class.getResource("images/skillimages/" + skillnames[i] + ".gif"));
                   skills[i] = new JLabel("00",icon,JLabel.CENTER);
              JPanel pane = new JPanel();
              GridBagLayout maingrid = new GridBagLayout();
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              GridBagConstraints constraints = new GridBagConstraints();
              JPanel skillPane = new JPanel();
              GridBagLayout levelslyo = new GridBagLayout();
              GridBagConstraints sConstraints = new GridBagConstraints();
              sConstraints.ipadx = 15;
              sConstraints.ipady = 10;
              skillPane.setLayout(levelslyo);
              int k = 0;
              int m = 1;
              buildconstraints(sConstraints,12,4,1,1,2,2);
              skillPane.add(skillicons);
              for (int i = 0; i < skills.length;i++){
                   buildconstraints(sConstraints,m,k,1,1,2,2);     
                        levelslyo.setConstraints(skills, sConstraints);
                        //skills[i].setText(" 0 ");
                        skillPane.add(skills[i]);
                        skills[i].addMouseListener(this);
                        m+=2;                    
                        if (m == 7){
                             m = 1;
                             k +=1;
              /*m = 0;
              k = 0;
              for (int i = 0; i < skills.length;i++){          
                   System.out.println("Paremale: " + m + " Alla: " + k);
                   buildconstraints(sConstraints,m,k,1,1,2,2);     
                   levelslyo.setConstraints(skillicons, sConstraints);
                   skillicons = new JLabel(icon);
                   skillPane.add(skillicons);
                        m+=2;                    
                        if (m == 6){
                             m = 0;
                             k +=1;
              buildconstraints(constraints,0,0,1,1,100,100);
              maingrid.setConstraints(username, constraints);
              buildconstraints(constraints,1,0,1,1,100,100);
              maingrid.setConstraints(search, constraints);
              buildconstraints(constraints,0,1,1,1,100,100);
              maingrid.setConstraints(skillPane, constraints);
              pane.setLayout(maingrid);
              constraints.fill = GridBagConstraints.BOTH;          
              search.addActionListener(this);
              box.setEditable(false);
              buildconstraints(constraints,1,1,2,1,120,100);
              maingrid.setConstraints(box, constraints);
              pane.add(username);
              pane.add(search);
              pane.add(box);
              pane.add(skillPane);
              setContentPane(pane);
              //getContentPane().add(scroll);
              pack();
              setVisible(true);
              WindowListener l = new WindowAdapter(){
                   public void windowClosing(WindowEvent evt){
                        System.exit(0);
              addWindowListener(l);
         void buildconstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx,int wy){
              gbc.gridx = gx;
              gbc.gridy = gy;
              gbc.gridwidth = gw;
              gbc.gridheight = gh;
              gbc.weightx = wx;
              gbc.weighty = wy;
         /*Vector ranks = new Vector();
         Vector levels = new Vector();
         Vector exp = new Vector();*/
         class Stats{
              int[] levels = new int[34];
              int[] experience = new int[34];
              int[] ranks = new int[34];
         Stats stats = new Stats();
         public void getStats(URL url){          
              URLConnection conn = null;
              InputStreamReader in;
              BufferedReader data;
              String line;          
              StringBuffer buf = new StringBuffer();
              try{
                   conn = this.page.openConnection();
                   conn.connect();
                   //box.setText("Connection opened");
                   in = new InputStreamReader(conn.getInputStream());
                   data = new BufferedReader(in);
                   //box.setText("Reading data...");
                   int ts=0;
                   while ((line = data.readLine()) != null){
                        buf.append(line + "\n");
                        StringTokenizer tokenize;
                        tokenize = new StringTokenizer(line.toString(),",");
                        int[][] paarid = {{1,0},{2,3},{3,6},{4,1},{5,9},{6,12},{7,15},{8,11},{9,17},{10,16},{11,8},{12,14},{13,13},
                                  {14,5},{15,2},{16,7},{17,4},{17,10},{19,19},{20,20},{21,18},{22,22},{23,21},{24,23}};
                        if (ts < 25 && ts > 0){
                             int slot = paarid[ts-1][1];
                                  stats.ranks[slot] = Integer.parseInt(tokenize.nextToken());
                                  int yo = Integer.parseInt(tokenize.nextToken());
                                  stats.levels[slot] =yo;
                                  stats.experience[slot] = Integer.parseInt(tokenize.nextToken());                         
                        ts++;
                   for (int i = 0; i < skills.length;i++){
                        String text = ""+stats.levels[i];//testings[i];//
                        skills[i].setText(text);
              }catch(IOException e){
                   box.setText("Insert a username \nfirst!");
         public String getNextXp(int level, int currxp){
              String nextXp;
              if (level > 98){
                   nextXp = "N/A";
              }else{
                   nextXp = ""+(differences[level] - currxp);
              return nextXp;
         public void actionPerformed(ActionEvent evt){
                   String newuser = username.getText().toString();
                   name = newuser;
                   String address = "http://hiscore.runescape.com/index_lite.ws?player="+name;
                   try{
                        page = new URL(address);               
                        getStats(page);
                   }catch(MalformedURLException e){
                        box.setText("Insert a username");
                   repaint();
         public void mouseEntered(MouseEvent e) {
              //if (experience[].isEmpty()){          
                   Object s = e.getSource();
                   for (int i = 0; i < skills.length;i++){
                        if (s == skills[i]){
                             box.setText("Rank: " + stats.ranks[i] + "\nExperience: " + stats.experience[i] + "\nExp until next: " + getNextXp(stats.levels[i],stats.experience[i]));
         public void mouseExited(MouseEvent e) {
    box.setText("");
         public void mouseClicked(MouseEvent e) {
         public void mousePressed(MouseEvent e) {
         public void mouseReleased(MouseEvent e) {
    This is just a little project i thought i'd make for learning.
    But can anyone help me make a working jar or an exe file?
    The Jar i created does nothing, no error or anything.
    Thanks for Help.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    How should i run the jar file then? I am double clicking it yes.
    EDIT: i ran the program through command line and i got an error:
    Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at PageFrame.<init>(PageFrame.java:41)
    at Main.main(Main.java:4)OK - so it looks like you've found a command line!
    You read these stack traces from the top down. Often the most interesting line is the first line that refers to your code. In this case line 41 of PageFrame.java which, I guess is this:
    ImageIcon icon = new ImageIcon(PageFrame.class.getResource(
            "images/skillimages/" + skillnames[i] + ".gif"));The ImageIcon constructor is grumbling about being told to construct an icon from a null resource. getResource() will return null if it cannot find the resource that you specify.
    The first thing to do is check that the .gif image is where it should be. You have specified it as "images/skillimages/etc" so use the command line to view the contents of the .jar file (or maybe Eclipse will let you do this). Next to PageFrame.class there should be a folder "images" and within it a folder "skillimages" and within that the image file. If not then your jar export has been seen up wrongly and is not including the required resource files.
    (The "View" command is explained here: [http://java.sun.com/docs/books/tutorial/deployment/jar/view.html].)
    Next check the case of the file names. On Windows getResource() will not worry about the cAsE of filenames so the resources will be located fine when running the program unjarred (including within Eclipse). But it does worry about the case of jar entry names. Bottom line: keep the file names all lower case because you use them that way in the code.
    Finally, in case it is a particular image resource that's causing the problem you could add some code to print out its name just before you try and create the icon.
    for (int i = 0; i < skills.length;i++){
        System.out.println(
                "About to make icon from " + "images/skillimages/" + skillnames[i] + ".gif");
        ImageIcon icon = new ImageIcon(PageFrame.class.getResource(
                "images/skillimages/" + skillnames[i] + ".gif"));
        skills[i] = new JLabel("00",icon,JLabel.CENTER);
    }

  • Deploying servlets (not in jar/war/ear!) to OC4J?

    I must be missing some very tiny but crucial issue....
    For over 2 days now (shame) I have been trying but not
    succeeding to deploy servlets to OC4J behind Apache. The 'behind
    Apache'-part is easy. Just set up a proxy. This is because
    Apache configuration is easy and well documented. But here is my
    real problem. I am using JDev 3.2 (9i too large) and this is
    what I want:
    I want to code a servlet in Jdeveloper, compile it to a class-
    file, not a jar, war, ear or whatever-r. Then I want to set up
    OC4J in such a way that I can access my servlets from the
    directory where the class files are. I do NOT want to use the
    default-web-app subdirectory for obvious reasons. Please, how do
    I set up OC4J to just look in my own classes-directory with my
    own servlets???? No jar, no war, no ear.
    I have been reading all sorts of information on this and tried
    everything, but am not succeeding and getting all sorts of
    error/not found messages.
    Extra info:
    I am using OC4J on windows. To start I use java -jar orion.jar,
    to restart I use ^C and repeat the start command. Is that ok or
    do I need to restart in a different way? I tried to setup OC4J
    as a service but the link to runexecsvc went astray to judosoft
    Any help will be greatly appreciated!

    Avi,
    Thanks for your swift reply. I have indeed read the docs, but
    the exploded directory format does not seem to work for one
    reason or another (got some error messages on file not found or
    something). Have you succeeded in deployment using exploded
    directories? If so, I would be greatly interested in your xml-
    files and directory structure!
    But, please do not spend too much time on this, because I have
    now decided that I will deploy using a war. I have written a
    small script to make a war out of my whole project and copy it
    to de OC4J file system. This works and everybody is happy.
    Thanks again,
    Martijn

  • Weblogic 10.3.2 EJB3 Local Interface in POJO/Helper classes

    Hi,
    I have a jar file containing all EJB's in application & some Helper classes. I want to access Local interfaces of EJBs in those helper classes. Is there any way I can do it? I've gone through Maxence Button & Jay SenSharma 's blogs about accessing Local interface. but it doesn't help. May be these two guys can help me more here.. My requirement is very simple. Just to access local interface in POJO/Helper classes that are in same JAR file as EJB's. I can't get reference with @EJB class level annotation as Helper classes are called independently from MBean services.. not from any EJB or Servlert.
    Please if anyone can tell me how do I get reference of local interfaces, that would be really good.
    my environment is
    Weblogic 10.3.2
    EJB3
    Regards,
    Prasad

    Hi,
    Just check ...If you want something like mentioned in the below Link with a complete Example:
    [http://jaysensharma.wordpress.com/2009/08/16/weblogic-10-3-ejb3-local-lookup-sample/|http://jaysensharma.wordpress.com/2009/08/16/weblogic-10-3-ejb3-local-lookup-sample/]
    Regards
    Jay SenSharma

Maybe you are looking for

  • Pc won't recognize tv as an audio output

    I own a HP ENVY TouchSmart m6-k015dx Sleekbook and i wish to use my samsung tv as a second bigger screen (via hdmi cord) I'll plug the hdmi cord in both and will be able to see my computer screen on my tv, but the sound will only work through the com

  • Downloaded latest icloud update and now get this "apple outlook dav config has stopped working"

    Downloaded latest icloud software update on my PC and now icloud does not work with Outlook. It wiped out my contacts list. During numerous attempts to set up icloud get this error message "apple outlook dav config has stopped working"  Apart from th

  • Oracle 9i Or 10G Certification

    Hi, I am a Associate Software QA Engineer who is doing QA in DataWare housing tool. I get the exposure to Oracle8i,9i,10g. But it is not extensive DBA exposure, It is more of testers exposure. But I like to move in to DBA track. Which certification p

  • Can't dial out a specific 800 number

    hello, we have ucm 7.1.3 and a 2921 as a voice gateway when we try to make calls to a specific toll free number we get a fast busy and if i debug the pri this is the reason code of the disconnect *Aug 16 16:29:56.675: ISDN Se0/2/0:23 Q931: RX <- PROG

  • Solaris10 PCMCIA Support

    Hello. I'm getting more and more excited about Solaris/X86 due to all the new development features in 10. So i've loaded up B63 (I've tried previous Express releases in the past). Problem is that I get 2 odd errors at startup. The first is complainin