Applet accidentally requests Java Core API classes from network

Hi,
starting an applet from a customers client machine (IE7, Windows XP, Standard JRE Installation of Java 1.6.0_26), I see in the tomcat access log entries signalizing that core java api classes are accidentally requested from the server:
"GET /mywebapp/applet/java/lang/StringBuilder.class HTTP/1.1" 404 1156 0
"GET /mywebapp/applet/javax/swing/JPanel.class HTTP/1.1" 404 1141 0
"GET /mywebapp/applet/java/net/JarURLConnection.class HTTP/1.1" 404 1162 0
"GET /mywebapp/applet/java/util/jar/JarEntry.class HTTP/1.1" 404 1153 0
"GET /mywebapp/applet/java/util/jar/JarFile.class HTTP/1.1" 404 1150 0
Although tomcat responses with HTTP 404, the applet works fine.
Questions:
1. For me, it looks like a security risk when the browser tries to load system classes from the network instead of using the local files from the jre dir, doesn't it?
2. When starting the applet from my local machine (different network), no tomcat logfile entries are generated. An interesting fact is, that in the customer network, the applet "codebase" parameter in the HTML source gets modifed by a proxy server for whatever reason like the following:
<applet codebase="http://mydomain.org/mywebapp/applet">
becomes some kind of:
<applet codebase="http://mydomain.org/mywebapp/applet/+sgrkjkrlgjklJKLjekrr4jewlkfjkerlkrelkjgregkjerlkgljkeglkjgjelkLKJLKefjei55435ijjkl=+">
It seems that such codebases confuse the classloader. Any ideas about that?
Thank you so much for any hints!

<applet codebase="http://mydomain.org/mywebapp/applet">
So you're loading individual .class files from the codebase? Don't do that, put them into a JAR and specify the JAR file(s) as the codebase. Much more efficient and it may solve this problem too.

Similar Messages

  • Java Core API

    I'd like to know if API like Java 2D or Java Security API belongs to Java Core API , or if it still belong to Java Standard Extension .

    http://java.sun.com/j2se/1.5.0/docs/api/index.html

  • The 'rewrite 1 core api class every day' Thread

    as we all know, if you want something doing properly, you've gotta do it yourself
    in light of this - I thought rewriting Javas entire core api (so it was done properly) would make quite a fun Thread :P
    now, this being a Game Development forum - I thought a good place to start would be in a graphics oriented class that everyone will have used....
    * @(#)DisplayMode.java     1.3 01/12/03
    * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
    * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
    package java.awt;
    public final class DisplayMode
        private Dimension size;
        private int bitDepth;
        private int refreshRate;
        public DisplayMode(int width, int height, int bitDepth, int refreshRate)
            this.size = new Dimension(width, height);
            this.bitDepth = bitDepth;
            this.refreshRate = refreshRate;
        public int getHeight()
            return size.height;
        public int getWidth()
            return size.width;
        public final static int BIT_DEPTH_MULTI = -1;
        public int getBitDepth()
            return bitDepth;
        public final static int REFRESH_RATE_UNKNOWN = 0;
        public int getRefreshRate()
            return refreshRate;
        public boolean equals(DisplayMode dm)
            return (getHeight() == dm.getHeight()
                && getWidth() == dm.getWidth()
                && getBitDepth() == dm.getBitDepth()
                && getRefreshRate() == dm.getRefreshRate());
        public int hashCode()
            return getWidth() + getHeight() + getBitDepth() * 7 + getRefreshRate() * 13;
    //and the smaller, faster version...
    package java.awt;
    public final class DisplayMode
        public final int width;
        public final int height;
        public final int bitDepth;
        public final int refreshRate;
        public DisplayMode(int width, int height, int bitDepth, int refreshRate)
            this.width = width;
            this.height = height;
            this.bitDepth = bitDepth;
            this.refreshRate = refreshRate;
        public int getHeight()
            return height;
        public int getWidth()
            return width;
        public final static int BIT_DEPTH_MULTI = -1;
        public int getBitDepth()
            return bitDepth;
        public final static int REFRESH_RATE_UNKNOWN = 0;
        public int getRefreshRate()
            return refreshRate;
        public boolean equals(DisplayMode dm)
            return (height == dm.height
                && width == dm.width
                && bitDepth == dm.bitDepth
                && refreshRate == dm.refreshRate);
        public int hashCode()
            return width + height + bitDepth*7 + refreshRate*13;
    }25th Jan 2003
    abu,

    m'kay...
    i suppose you could do that...
    anyway, i'm not good with this 'keyword' stuff and
    all.../me wonders why you are posting here at all :D
    but wouldn't final mean that you cannot change taht
    variables value later...yup
    of course you could say that you don't want to, and
    that nobody needs to...well yeah... when classes are immutable (as the DisplayMode class is)
    its values are, by definition, unchangable.
    but why are ther these set methods then?there are no 'set' methods - DisplayMode is an immutable class.
    >
    this public thing i'm also not sure about.
    in this class you may go public, but some classes user
    should NOT have ability to set value of variable
    directly.the only reason they are public, is because they are final (or should be atleast :P).
    I wouldn't make them public otherwise.
    Also, the only reason the getXXX methods exist, is it conform to the original spec. of the DisplayMode class. (and the 'standard' or having get methods for public attributes - Dimension,Rectangle,Point etc all do it)
    maybe it would be better to stick with protected... ?as markuskidd has pointed out - this class is final, it cannot be extended, hence protected means nothing.
    >
    othervise it's a good idea.
    if you get a bunch of classes that have been
    perfected, then maybe sun will one day revise your
    classes and replace these old crapier ones.gotta find 1 to do 2morrow now :P (though I doubt this will make any difference to Sun, they simply don't care about correct code)

  • Java Core API's class files

    Hi Guys,
    I wanted to know where are the Java packages' class files are located in my computer?
    For example, I want to find the location of java.util.Vector, or java.lang.String. I've ran a search but found nothing, so I guess those files are hiding somewhere in a jar or something, Does anyone know where are those files?

    Rovat wrote:
    ... I want to find the location of java.util.Vector, or java.lang.String. I've ran a search but found nothing, so I guess those files are hiding somewhere in a jar or something, Does anyone know where are those files?The class files are in rt.jar.
    The source for the class files are in the src.zip file of the SDK.

  • How to call Java API classes from Javafx Main.fx?

    Hi
    Can anybody let me know how to include java.util.StringTokenizer in Main.fx file of Javafx?
    I need to split a concatenated String in Javafx. Is there any example available with anybody on this?
    When I use the split() of Javafx, I get error while assigning the value returned by split() to both String and String[] variables:
    1. var name = "test|string";
    2. var names: String[];
    3. var splitName: String = "";
    4. names[0] = name.split("|");
    5. splitName = names.split("|");
    6. var storeName: String[];
    Later I need to put the splitName into another String array to have a collection of all the concatenated string in one array.
    insert splitName into storeName;
    But I get error in line 4 and 5. The split() in javafx returns a String []. Is there anything that I missing here.
    Any reply to this post will be highly appreciated. I need this quite urgently.
    Thanks & Regards
    masrrev

    Hi Phil
    Thanks for the immediate response. I tried the code but getting the following exception, which I was getting earlier too.
    Inside on Mouse Clicked...
    Uncaught exception: java.lang.Error: 137_*
    - xing.Xing$2.lambda(), bci=43
    - xing.Xing$2.invoke(), bci=2
    - xing.Xing$2.invoke(), bci=5
    - javafx.scene.Node.mouseClicked$impl(), bci=68
    - javafx.scene.Node.mouseClicked(), bci=3
    - com.sun.fxme.runtime.FXNodeDelegate$4.run(), bci=6
    - com.sun.fxme.runtime.RunnableQueue$Manager.run(), bci=86
    - com.sun.fxme.runtime.RunnableQueue.run(), bci=38
    And the code in onMouseClicked Event is reproduced below:
    onMouseClicked: function(e : MouseEvent) : Void {
    println("Inside on Mouse Clicked...");
    def sample = "Sherlyn|masrrev|Other";
    var names = sample.split("\\|");
    println("{names.toString()}");
    // splitString();
    sceneNew = Scene {
    content: [nextScreen]
    Regards
    masrrev

  • Call java 1.6 class from oracle 11g

    Hi Friends
    Can we execute a JAVA 1.6 compatible code under Oracle 11g JVM?
    1.5 compatible code is running fine under Oracle 11g. But code compiled using 1.6 throws following exception:
    ORA-29552: verification warning: java.lang.UnsupportedClassVersionError: (Unsupported major.minor version 50.0)
    Is there any workaround or an upgrade process to run JDK 6 compiled code?
    Thanks
    Mayank

    Hi,
    The Orcale JDBC Drivers download page http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_111060.html also mentions the jar files needed for the classes.
    Do you have the following file:
    ojdbc6.jar (1,988,051 bytes) - Classes for use with JDK 1.6. It contains the JDBC driver classes except classes for NLS support in Oracle Object and Collection types.
    Regards,
    Priyanka

  • Deploying Java Comm API

    Hi,
    I am developing an applet which uses Java Comm API. I'm running into some deployment issue. My understanding is that Java Comm API needs to have win32com.dll and javax.comm.properties files installed on the client machine for my applet to use Comm API. Is there a way around this? The ideal way will be to have everything (win32com.dll and javax.comm.properties) in a jar file so that it doesn't need to install any file on the client machine. However looking at previous posts, I don't think that's possible with Java Plug-in. Will I be able to utilize Java WebStart to accomplish this? I'll be interested to find how other people deploy Java Comm API. Thanks in advance.
    Regards,
    Joy

    I�ve developed a solution to this problem. I created a class that creates the javax.comm.properties file where the comm.jar lib looks for it. The trick is to run the method that creates the file before the lib looks for it.
    I show you the example of my code:
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    public final class PrinterInit {
        public static void printerInit(){
            String archivoConf =
                System.getProperty("java.home") + File.separator + "lib" +
                File.separator + "javax.comm.properties";
            try {
                BufferedWriter out = new BufferedWriter(new FileWriter(archivoConf));
                out.write(
                    "#"+ "\n" +
                    "# Drivers loaded by the Java Communications API standard extension"+ "\n" +
                    "# at initialization time "+ "\n" +
                    "# "+ "\n" +
                    "# Format: "+ "\n" +
                    "#   Each line must contain ONE driver definition only "+ "\n" +
                    "#   Each line must be of the form: "+ "\n" +
                    "#           driver=<ClassName> "+ "\n" +
                    "#       No spaces or tabs in the line. "+ "\n" +
                    "#       ClassName must implement the interface javax.comm.CommDriver "+ "\n" +
                    "#           example: driver=Win32Serial"+ "\n" +
                    "#   "+ "\n" +
                    "#"+ "\n" +
                    "# The hash(#) character indicates comment till end of line."+ "\n" +
                    "#"+ "\n" +
                    "# Windows Serial Driver"+ "\n" +
                    "Driver=com.sun.comm.Win32Driver" + "\n");
                out.close();
            } catch (IOException e) {
                System.err.println("No se pudo crear el archivo:" + "javax.comm.properties");
                System.err.println("Ruta completa:" + archivoConf);
    }Before opening the port I call
    PrinterInit.printerInit();This example writes de javax.comm.properties file needed for a windows implementation. You can change the value of the Driver property for the system you are using.
    Good Luck!

  • Is there an easy way to call a java class from an applet?

    Does anyone know of an easy way to call a server based java class from an applet? Has anyone done it or came across it? If yes how/where?
    Cheers, Chris.

    I'm not sure about the issue. Are you talking about "servelets"? "RMI"? Take a look at those issues.

  • XFIRE - Java class from wsdl and soap request from java class

    Hi,
    Firstly i'm newbie programmer with little experience, so please help me if u can.
    I have found an example on how to create java classes from WSDL under maven:
    (...)<taskdef classname="org.codehaus.xfire.gen.WsGenTask" name="wsgen">(...)
    I've created the below java class and I create new object of this class: UploadChunk up = new UploadChunk()
    and up.setSomething(123) etc....
    I have some service for which I have to prepare soap request manually - suitable for my service requests.
    I'm doing it using dom4j to create xml documents and i rewrite values to it from my variable up.
    I wonder if it is possible to do it automatically - I have UploadChunk object and I want do use xFire library somehow to produce ready or almost ready soap request. I want to do it in my code, no some ant or maven task.
    So I propably need a couple line of code, when I have:
    up.setSomething(123);
    //////CONVERTION - CAN U TELL ME HOW TO DO THAT PLEASE? I haven't found the way :( it seems I need your help.
    //////Document result =....
    callService(result,namespace,qname);
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlType;
    * <p>Java class for UploadChunk complex type.
    * <p>The following schema fragment specifies the expected content contained within this class.
    * <pre>
    * <complexType name="UploadChunk">
    *   <complexContent>
    *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
    *       <sequence>
    *         <element name="SessionID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
    *         <element name="InputFileName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
    *         <element name="Buffer" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
    *         <element name="Offset" type="{http://www.w3.org/2001/XMLSchema}long"/>
    *         <element name="BytesRead" type="{http://www.w3.org/2001/XMLSchema}int"/>
    *       </sequence>
    *     </restriction>
    *   </complexContent>
    * </complexType>
    * </pre>
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "UploadChunk", propOrder = {
        "sessionID",
        "inputFileName",
        "buffer",
        "offset",
        "bytesRead"
    public class UploadChunk {
        @XmlElement(name = "SessionID")
        protected String sessionID;
        @XmlElement(name = "InputFileName")
        protected String inputFileName;
        @XmlElement(name = "Buffer")
        protected byte[] buffer;
        @XmlElement(name = "Offset")
        protected long offset;
        @XmlElement(name = "BytesRead")
        protected int bytesRead;
         * Gets the value of the sessionID property.
         * @return
         *     possible object is
         *     {@link String }
        public String getSessionID() {
            return sessionID;
         * Sets the value of the sessionID property.
         * @param value
         *     allowed object is
         *     {@link String }
        public void setSessionID(String value) {
            this.sessionID = value;
         * Gets the value of the inputFileName property.
         * @return
         *     possible object is
         *     {@link String }
        public String getInputFileName() {
            return inputFileName;
         * Sets the value of the inputFileName property.
         * @param value
         *     allowed object is
         *     {@link String }
        public void setInputFileName(String value) {
            this.inputFileName = value;
         * Gets the value of the buffer property.
         * @return
         *     possible object is
         *     byte[]
        public byte[] getBuffer() {
            return buffer;
         * Sets the value of the buffer property.
         * @param value
         *     allowed object is
         *     byte[]
        public void setBuffer(byte[] value) {
            this.buffer = ((byte[]) value);
         * Gets the value of the offset property.
        public long getOffset() {
            return offset;
         * Sets the value of the offset property.
        public void setOffset(long value) {
            this.offset = value;
         * Gets the value of the bytesRead property.
        public int getBytesRead() {
            return bytesRead;
         * Sets the value of the bytesRead property.
        public void setBytesRead(int value) {
            this.bytesRead = value;
    }

    Hi,
    Can u Please post the WSDL..here. I remember long back i resolved this kind of issue...when i was getting "*parameters is already defined in - - -*" while using ClientGen.
    Once i will get the WSDL may be i can recall it...
    If u have any problem in Posting the WSDL..in Forums .. then let me know I will send my E-Mail Address...
    As far as i remember ..it usually happens when we Run ClientGen task of WLS81 ON the WebService/WSDL generated by WebLogic 9.x or Above. Please let me know if this is the Case with you as well... . I remember there is a Patch for it...for WLS8 ClientGen task...I dont remember the Patch Number Exactly.
    Just For testing:
    Just Use WLS9.x ClientGen task On the Same WSDL
    <taskdef name="clientgen" classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
    I am sure you will not see this issue... because the issue is there only with WLS8 Clientgen...
    Thanks
    Jay SenSharma
    http://jaysensharma.wordpress.com (WebLogic Wonders Are Here)
    Edited by: Jay SenSharma on Jan 8, 2010 4:32 PM
    Edited by: Jay SenSharma on Jan 8, 2010 4:34 PM

  • Extracting specific detial about class from the JAVA API created by Javadoc

    hi ,
    Bacialy I need to get detials of all classes from the Java packages for my project. So i thought getting detials from the Java API document might be one way of doing it. If any one tell me some package or software which can get particulat text from the API document that will be great.
    Thank you,
    Raj

    Hi,
    I think, much easier way would be to write a little doclet. That doclet would take the information you need directly from the Doclet API and generate by it a plain text with the content you wish (for instance, as an SQL script that loads everything into a certain database).
    Obtaining this from the generated HTML documentation just adds one extra step (and a lot more complicated, by the way).
    Also, you can avoid even writing a doclet.
    There is a tool called DocFlex/Javadoc:
    http://www.filigris.com/products/docflex_javadoc/
    It is a template-driven doclet, which can be easily programmed to do the job. (However, a license will be needed).
    Regards,
    Leonid Rudy
    http://www.docflex.com

  • Suppressing Applet alerts when using java mail api

    Hi,
    Im using the following code to send email from my application. Im using JSF (tomahawk), Spring and hibernate in my application. I'm using spring email API classes to send email. This code works perfectly fine in the sense its parsing template and sending emails to the configured email id.
    I have defined this class as a managed bean and i have a commanButton is UI which is bound to this sendEmail() method
    <t:commandButton value="Send email" action= #{email.sendEmail}/>
    import java.io.StringWriter;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;
    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;
    import org.apache.velocity.Template;
    import org.apache.velocity.VelocityContext;
    import org.apache.velocity.app.VelocityEngine;
    import org.apache.velocity.exception.ParseErrorException;
    import org.apache.velocity.runtime.resource.loader.StringResourceLoader;
    import org.apache.velocity.runtime.resource.util.StringResourceRepository;
    import org.springframework.mail.MailException;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSenderImpl;
    import org.springframework.mail.javamail.MimeMessageHelper;
    import au.gov.nsw.railcorp.onlineticketing.external.model.request.ServiceFees;
    public class EmailService {
         JavaMailSenderImpl sender;
         VelocityEngine engine;
         public EmailService(){
         sender = new JavaMailSenderImpl();
             sender.setHost("<smtp ip>");
             sender.setPort(25);
             sender.setUsername("<user id>");
             sender.setPassword("<password>");
             engine = new VelocityEngine();
             Properties p = new Properties();
             p.setProperty("resource.loader", "string");
             p.setProperty("string.resource.loader.class",
                  "org.apache.velocity.runtime.resource.loader.StringResourceLoader");
             try {
                   engine.init(p);
              } catch (Exception e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
         public VelocityEngine getEngine() {
              return engine;
         public void setEngine(VelocityEngine engine) {
              this.engine = engine;
         public JavaMailSenderImpl getSender() {
              return sender;
         public void setSender(JavaMailSenderImpl sender) {
              this.sender = sender;
         public static void main(String args[]){
              EmailService emailService=new EmailService();
              emailService.sendEmail();
         public boolean sendEmail(){
         try{
                 MimeMessage message = sender.createMimeMessage();
                 MimeMessageHelper helper = new MimeMessageHelper(message);
                 helper.setTo("<to email id>");
                 helper.setFrom("<from email id>");
                 helper.setSubject("Teting velocity");
                 VelocityContext context = new VelocityContext();
                 StringWriter writer =  new StringWriter();
                 Template template =new Template();
                    StringResourceRepository repository =StringResourceLoader.getRepository();
                    String tempText="<html><body>Hi, ${username}...<p> this is a some template!</p></body></html>";
                 repository.putStringResource("myTemplate",tempText );
                 context.put("username", "Marc");
                 template = engine.getTemplate("myTemplate");
                  template.merge(context, writer);
                  System.out.println("VM Template:\n" + tempText);
                  System.out.println("Output:\n" + writer);
                  String body=writer.toString();
                  helper.setText(body,true);
                  sender.send(message);
            catch (MessagingException ex) {
                // simply log it and go on...
                System.err.println(ex.getMessage());           
            catch (MailException ex) {
                // simply log it and go on...
                System.err.println(ex.getMessage());           
            } catch (ParseErrorException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
         } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
         return true;
    }The problem i have is when i try to invoke the function sendEmail() from my UI it is throwing a series of applet alerts (some 10 of them) . The following are the alerts that i get
    1. The applet is attempting to invoke the java/lang/System.getProperty() operation on java.home
    2. The applet is attempting to perform a read operation on the file C:\Program Files\java\jre1.5.0_14\javamail.providers
    3. The applet is attempting to perform a read operation on the file C:\Program Files\java\jre1.5.0_14\javamail.address.map etc....
    For ever applet alert i had to click on 'allow' for it to proceed. But there is no problem in sending mail after that. One more interesting this is i DONT get this alert when i try to execute this java class directly instead of calling the method from another class or from UI.
    Can someone please let me know the reason for this applet alert and the way to suppress it?
    Its really urgent .. please help
    Thank you..

    Hi Subhadip,
    Thanks for the quick response :)
    Please help me understand this.. Im not explicitly using applet anywhere .I guess it should be used internally by one or many of the API classes i have used . In this scenario how can self sign the applet and which one?
    I have included some jars like activation.jar,mail-1.4.2.jar,velocity-1.6.2.jar in my webapp lib . Is there a means to sign these jars and use? Is this what you are suggesting me to do?
    One more doubt i have is how come the same method runs without any problem when executed as a standalone java class (with main() method)
    Will be really helpful if you could help me understand this...
    Thanks,
    Swami

  • Java application with classes to Applet?

    Hello,
    First, I'm a Java junior, but I can make efforts to analyse and understand code.
    I saw an interesting open-source multiplayer poker java application: [JiBi's Hold'Em|http://sourceforge.net/projects/jibisholdem/]
    I would like to try to add it as an Applet on my server, but I have some questions.
    1- Do you think it is possible to make it fully works as an Applet (eg: through a proxy), as it seems to use a specific protocol and many classes?
    2- I tried the idea of GumB: http://forums.sun.com/thread.jspa?threadID=390846&start=13&tstart=0
    with getContentPane().add( new javaApp().getContentPane()but I have the following error message:
    I also tried with imports (import holdem.core.Card;etc) and with HoldEmClientGUI().getContentPane() or holdem.gui.HoldEmClientGUI().getContentPane()
    D:\JiBisHoldem\src\holdem\gui\HoldEmApp.java:7: cannot find symbol
    symbol  : class HoldEmClientGUI
    location: class HoldEmApp
            getContentPane().add( new HoldEmClientGUI().getContentPane() );
                                      ^
    1 errorAm I close or really far from a working result?
    Thanks
    John.

    The above way seems to have the same result as getContentPane().add( new javaApp().getContentPane().
    Here is my HoldEmClientGUI.java (I have commented unused lines like title):
    package holdem.gui;
    import holdem.core.Card;
    import holdem.core.Choice;
    import holdem.core.Player;
    import holdem.gui.interfaces.ClientGUIInterface;
    import holdem.gui.menu.MainMenuBar;
    import holdem.gui.panel.PokerChoiceListPane;
    import holdem.gui.panel.PokerMainPane;
    import holdem.gui.panel.PokerPlayerPane;
    import java.awt.BorderLayout;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JApplet;
    import sun.audio.AudioPlayer;
    import sun.audio.AudioStream;
    import tools.AppProperties;
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class HoldEmClientGUI extends JApplet {     
         public static void main(String[] args) {
              HoldEmClientGUI app = new HoldEmClientGUI();
              app.init();
              app.start();
         public void init()
              AppletContext ac = null;
              try
                   ac = getAppletContext();
              catch(NullPointerException npe)
              //new HoldEmClientGUIFrame(ac);
              new HoldEmClientGUIFrame();
    class HoldEmClientGUIFrame extends JFrame implements ClientGUIInterface {
         private static final long serialVersionUID = 1L;
         private String m_mainTitle = "";
         private String m_title1 = "";
         private String m_title2 = "";
         private HashMap<Integer, PokerPlayerPane> m_playerPaneList = null;
         private PokerMainPane m_pokerMainPane = null;
         private MainMenuBar m_pokerMainMenuBar = null;
         private PokerChoiceListPane m_pokerChoiceListPane = null;
         //AppletContext ac;
         //HoldEmClientGUI(AppletContext ac) {
         HoldEmClientGUIFrame() {
              //super();
              //this.ac = ac;
              //Set Icon
              //setIconImage(new ImageIcon(getClass().getResource(AppProperties.getInstance().getProperty("holdem.images.icon.logo"))).getImage());
              m_mainTitle = AppProperties.getInstance()
                        .getProperty("holdem.config.title")
                        + " - v"
                        + AppProperties.getInstance().getProperty(
                                  "holdem.config.version");
              //refreshTitle();
              // adding PokerTable
              getContentPane().add(getPokerMainPane(), BorderLayout.CENTER);
              getContentPane().add(getPokerChoiceListPane(), BorderLayout.SOUTH);
              getContentPane().add(getPokerMainMenuBar(), BorderLayout.NORTH);
              // init playerPaneList
              m_playerPaneList = new HashMap<Integer, PokerPlayerPane>();
              //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              // setSize(200, 100);
              /* Add the window listener */
              addWindowListener(new WindowAdapter()
                   public void windowClosing(WindowEvent evt)
                        dispose();
                        if (AppletApplicationFrame.this.ac == null)
                             System.exit(0);
              setVisible(true);
              pack();
         private void refreshTitle(){
              //setTitle(m_mainTitle+m_title1+m_title2);
         private PokerMainPane getPokerMainPane() {
              if (m_pokerMainPane == null) {
                   m_pokerMainPane = new PokerMainPane();
              return m_pokerMainPane;
         private PokerChoiceListPane getPokerChoiceListPane() {
              if (m_pokerChoiceListPane == null) {
                   m_pokerChoiceListPane = new PokerChoiceListPane();
              return m_pokerChoiceListPane;
         private MainMenuBar getPokerMainMenuBar() {
              if (m_pokerMainMenuBar == null) {
                   m_pokerMainMenuBar = new MainMenuBar();
              return m_pokerMainMenuBar;
         public void addPlayer(Player player) {
              PokerPlayerPane playerPane = new PokerPlayerPane();
              playerPane.initPlayer(player.getId(), player.getSeatNumber(), player
                        .getNickname(), player.getStack(), player.getPlayerType());
              getPokerMainPane().addOnSeat(playerPane, player.getSeatNumber());
              m_playerPaneList.put(player.getId(), playerPane);
         public void setPlayerCardHighlighted(boolean highlighted, int playerId,
                   int cardNumber) {
              PokerPlayerPane playerPane = getPlayerPaneByPlayerID(playerId);
              if (playerPane != null) {
                   playerPane.setCardHighlighted(highlighted, cardNumber);
         public void setTableCardHighlighted(boolean highlighted, int cardNumber) {
              m_pokerMainPane.setCardHighlighted(highlighted, cardNumber);
         public void setAllCardsHighlighted(boolean highlighted) {
              ArrayList<PokerPlayerPane> playerPaneList = new ArrayList<PokerPlayerPane>(
                        m_playerPaneList.values());
              for (int playerCounter = 0; playerCounter < playerPaneList.size(); playerCounter++) {
                   playerPaneList.get(playerCounter)
                             .setCardHighlighted(highlighted, 0);
              m_pokerMainPane.setCardHighlighted(highlighted, 0);
         public Choice displayChoices(ArrayList<Choice> choiceList) {
              return getPokerChoiceListPane().displayChoices(choiceList);
         public void displayAsyncMsg(String msg) {
              getPokerMainPane().displayTempoMsg(msg);
         public int getBetValue() {
              return getPokerChoiceListPane().getBetValue();
         public void addCardToPlayer(int playerId, Card card) {
              PokerPlayerPane playerPane = getPlayerPaneByPlayerID(playerId);
              if (playerPane != null) {
                   playerPane.addCard(card);
         public void addCardToTable(Card card) {
              getPokerMainPane().addCardToTable(card);
         public void removeCardsFromPlayer(int playerId) {
              PokerPlayerPane playerPane = getPlayerPaneByPlayerID(playerId);
              if (playerPane != null) {
                   playerPane.removeCards();
         public void removeCardsFromPlayers() {
              ArrayList<PokerPlayerPane> playerPaneList = new ArrayList<PokerPlayerPane>(
                        m_playerPaneList.values());
              for (int playerCounter = 0; playerCounter < playerPaneList.size(); playerCounter++) {
                   playerPaneList.get(playerCounter).removeCards();
         public void removeCardsFromTable() {
              getPokerMainPane().removeCards();
         private PokerPlayerPane getPlayerPaneByPlayerID(int playerID) {
              PokerPlayerPane foundPlayerPane = (PokerPlayerPane) m_playerPaneList
                        .get(playerID);
              return foundPlayerPane;
         public void setButton(int seatNumber, int buttonType) {
              m_pokerMainPane.setButton(seatNumber, buttonType);
         public void setConnectionStatus(boolean isConnected, String nickname) {
              m_pokerMainMenuBar.setConnectionStatus(isConnected);
              m_title1 = " - " + nickname;
              if (isConnected) {
                   m_title1+=" is Connected";
              } else {
                   m_title1+=" is not Connected";
              refreshTitle();
         public void setPot(int potValue) {
              getPokerMainPane().setPot(potValue);
         public void setPlayerStack(int playerID, int newStack) {
              PokerPlayerPane playerPane = getPlayerPaneByPlayerID(playerID);
              if (playerPane != null) {
                   playerPane.setStack(newStack);
         public void setCurrentBetValue(int playerID, int betValue) {
              PokerPlayerPane playerPane = getPlayerPaneByPlayerID(playerID);
              if (playerPane != null) {
                   playerPane.setCurrentBet(betValue);
         public void setPlayerAction(int playerID, int PLAYER_ACTION) {
              PokerPlayerPane playerPane = getPlayerPaneByPlayerID(playerID);
              if (playerPane != null) {
                   playerPane.setAction(PLAYER_ACTION);
         public void playSound(int ACTION) {
              String soundPath = "";
              switch (ACTION) {
              case ClientGUIInterface.ACTION_ALLIN: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.chips.allin");
                   break;
              case ClientGUIInterface.ACTION_BET: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.chips");
                   break;
              case ClientGUIInterface.ACTION_CALL: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.chips");
                   break;
              case ClientGUIInterface.ACTION_RAISE: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.chips");
                   break;
              case ClientGUIInterface.ACTION_PAY_SMALL_BLIND: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.chips");
                   break;
              case ClientGUIInterface.ACTION_PAY_BIG_BLIND: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.chips");
                   break;
              case ClientGUIInterface.ACTION_CHECK: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.check");
                   break;
              case ClientGUIInterface.ACTION_FOLD: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.fold");
                   break;
              case ClientGUIInterface.ACTION_DEAL_CARDS: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.card");
                   break;
              case ClientGUIInterface.ACTION_REMOVE_CARDS: {
                   soundPath = AppProperties.getInstance().getProperty(
                             "holdem.sounds.remove_cards");
                   break;
              default: {
              if (soundPath != null && !soundPath.trim().equals("")) {
                   try {
                        AudioPlayer.player.start(new AudioStream(getClass()
                                  .getResource(soundPath).openStream()));
                   } catch (IOException ioe) {
                        System.err.println("Unable to play sound:\n" + soundPath
                                  + "\n\n" + ioe);
         private void displayBlindValues(int curSB, int curBB, int nextSB, int nextBB){
              //m_title2=" - "+curSB+"/"+curBB+" (next values "+nextSB+"/"+nextBB+")";
              //refreshTitle();
         public void raiseBlinds(int curSB, int curBB, int nextSB, int nextBB){
              displayBlindValues(curSB,curBB,nextSB,nextBB);
    }The error when calling HoldEmClientGUI.class (I have 2 files HoldEmClientGUI.class and HoldEmClientGUIFrame.class, is it normal?):
    java.lang.VerifyError: (class: holdem/gui/menu/MainMenuBar, method: handleSettingsItem signature: ()V) Incompatible argument to function
         at holdem.gui.HoldEmClientGUIFrame.getPokerMainMenuBar(HoldEmClientGUI.java:145)
         at holdem.gui.HoldEmClientGUIFrame.<init>(HoldEmClientGUI.java:95)
         at holdem.gui.HoldEmClientGUI.init(HoldEmClientGUI.java:54)
         at sun.applet.AppletPanel.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)MainMenuBar.java:
    import holdem.gui.dialog.ClientInputDialog;
    import holdem.gui.dialog.ServerInputDialog;
    import holdem.gui.dialog.SettingsDialog;
         private void handleSettingsItem() {
              new SettingsDialog(getHoldEmClientGUI());
         private HoldEmClientGUI getHoldEmClientGUI() {
              HoldEmClientGUI gui = null;
              Container curContainer = this;
              do {
                   curContainer = curContainer.getParent();
              } while (curContainer instanceof Container
                        && !(curContainer instanceof HoldEmClientGUI));
              if (curContainer instanceof HoldEmClientGUI) {
                   gui = (HoldEmClientGUI) curContainer;
              return gui;
         }I think the problem comes from private HoldEmClientGUI getHoldEmClientGUI() but I don't know what is wrong in it.
    Edited by: Quezako on Oct 14, 2008 7:51 AM

  • Using Java Mail API from Tomcat

    Hello,
    Purely as an academic exercise I have written a JSP page which, upon being requested from the client's browser, should send me a default email using Java Mail Api.
    here is the code :
    import java.util.*;
    import java.io.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    public class TestMail {
        static String msgText1 = "success this time 12";
        static String msgText2 = "This is the text in the message attachment.";
        public String sendIt() {
            String to = "<my email";
            String from = "<anything>";
            String host = "<my ip address of smtp server>";
            boolean debug = false;
            Properties props = new Properties();
            props.put("mail.smtp.host", host);
            Session session = Session.getInstance(props, null);
    .....The code works fine as a stand alone app but when called from JSP page it hangs on the Session.getInstance line. I can only guess that this might be a security issue with the container not allowing access to the smtp server ?
    Can anyone give me a clue ???

    Your Tomcat log files should spell out the problem for you.
    My Tomcat installation does not come with the Java Mail API. I had to add the mail and activation jar files to the server/common.lib directory (or the server's shared/lib or the WEB-INF/lib of your application.)
    HTH.

  • Using Java mail API from JSPDynPage

    Hi Experts,
    I am working on a Portal Assignment that requiresto sent work flow mails on the basis of error conditions.
    Can u please suggest if at all I can use Java Mail APIs from JSP page within the JSP DYN Page Framework.
    If at all Java Mail can be used could u please suugest some help docs on the same.
    Thanks for the help.
    Manab C Ghosh
    EP Consultant
    Kolkata INDIA
    +919830603327

    Hi Experts,
    Thanks for all the responses to my Mail question(mailing from JSPDynPage).
    I have found the solution.
    Here is how I have got the things: (pls note there are other solns)
    Using Java Mail APIs;
    Create a Java file in the scr.core / src.api
    MailSender.java
    * Created on Jul 21, 2005
    * To change the template for this generated file go to
    * Window>Preferences>Java>Code Generation>Code and Comments
    package com.mailsend.test;
    import java.util.Date;
    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    * Edited on Jul 24, 2005
    * @author Manab C Ghosh
    public class MailSender {
         public String sendMessage(){
            String msg ="Hello mail Test";
            String smtpServer ="mySMTPServer";
            String smtpSender = "senderemailaddress";
            String smtpRecipient="receipientemailaddress";
            String stBody =  msg ;
            //String stDate = new Date().toString() ;
            String stSubject = "Mail Test ";
            Send(     smtpServer,          //SMTPServer
                      smtpSender,          //Sender
                      smtpRecipient,     //Recipient
                      stSubject,          //Subject
                      stBody               //Body
                        );               //Attachments                    
         return "Mail Success";
    public static void Send(String SMTPServer,
                                  String From,
                                  String To,
                                  String Subject,
                                  String msgText1
            // Error status;
            int ErrorStatus = 0;
            // create some properties and get the default Session
            Properties props = System.getProperties();
            props.put("mail.smtp.host", SMTPServer);
            Session session = Session.getDefaultInstance(props, null);     
            try {
                 // create a message
                 MimeMessage msg = new MimeMessage(session);
                 msg.setFrom(new InternetAddress(From));
                 InternetAddress[] address = {new InternetAddress(To)};
                 msg.setRecipients(Message.RecipientType.TO, address);
                 msg.setSubject(Subject);
                 // create and fill the first message part
                 MimeBodyPart mbp1 = new MimeBodyPart();
                 mbp1.setText(msgText1);
                 // create the Multipart and its parts to it
                 Multipart mp = new MimeMultipart();
                 mp.addBodyPart(mbp1);
                 //mp.addBodyPart(mbp2);
                 // add the Multipart to the message
                 msg.setContent(mp);
                 // set the Date: header
                 msg.setSentDate(new Date());
                 // send the message
                 Transport.send(msg);
            } catch (MessagingException mex) {
    Call this file from the JSP page (which is set at JSPDynPage controller)
    one important thing-----
    Create a dir under PORTAL-INF and import the following jars-- activation.jar, mail.jar,imap.jar,smtp.jar, mailapi.jar.
    This works..
    Thanks once again to the Experts.
    happy mailing
    Manab Ghosh.
    INDIA (+919830603327)

  • How to get hold of the JavaFX applet in some java code called from it

    I have a scenario where I am trying to reuse some java libraries that existed before and used the Applet API. In order to give a new UI to these APIs I am redesigning the front end using JavaFX. I can create instances of java classes from these old libraries. Methods on these old classes take java.applet.Applet as an argument.
    When the JavaFX applet is deployed as an applet, how can one get hold of the corresponding Applet object?
    Thanks in advance.

    When run as an applet, FX.getArgument("javafx.applet") will return the JApplet instance.

Maybe you are looking for

  • Exporting to PDF fails when report includes a barcode

    Post Author: Lorne Chisholm CA Forum: Exporting I am getting the following error when I try to export a Crystal Report file to a PDF format: CRAXDRT Error Occured on Server. -2147189152: Cannot find the QE property I am able to export the report to R

  • Excel file creation on application server

    Gurus, I have seen a lot of threads on excel file creation in application server, but failed to see if anyone had a solution. Problem: In background execution I need to create an excel sheet on application server, the data would be contained in inter

  • Looping over elements in BPEL

    Hi! I am new BPEL. I am trying to process a file that have customer information. I want to loop thru each of the customer record, do series of validations and then write to a file. I tried to use "while" construct to verify that customer name is not

  • Better than iMovie

    I'm busy editing my 3 month holiday in South Africa with iMovie (first time - new to Mac's), but the program seems a bit limited. Is there another piece of video editing software for a Mac that's alot better than iMovie? (I know you get the really ex

  • HT201303 i need to add a rescue email so that i can change my security questions.  I have forgotten them.

    k