NullPointerException in out.println(message);

Am trying to send a String to a server but getting a NullPointerException on line 46 thats this line:
out.println(message);
the code :
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.Applet;
import java.io.*;
import java.net.*;
import java.util.*;
import java.applet.AudioClip;
import javax.swing.text.html.*;
import java.net.URL;
import java.io.IOException;
public class chatClient extends JApplet implements Runnable
private String hostname, message;
protected BufferedReader in;
protected PrintWriter out;
protected TextArea output;
protected TextField input;
protected Button b;
protected Thread listener;
// Constructor looks after GUI
public chatClient()
//super("Chat Client");
getContentPane().setLayout(new BorderLayout());
output = new TextArea();
// Panel to arrange two components on
Panel p = new Panel();
p.setLayout(new BorderLayout());
input = new TextField();
b= new Button("Send");
// What happens when we press the button...
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
// read in text from textField, store as string
message = input.getText();
out.println(message);
System.out.println("Message is:" + message);
//out.flush(); We set the boolean autoflush to true in constructor
// blank the textField for next line
input.setText(" ");
}); // ends inner class
// add the textfield and button to the Panel
p.add("North", input);
p.add("South", b);
// add the textArea and the Panel to the Frame
getContentPane().add("Center", output);
getContentPane().add("South", p);
// the 'engine' behind the GUI
public void runClient()
// set hostname to 127.0.0.1 for testing
hostname="localhost";
// try to create the socket and initialise the Streams
try
Socket s = new Socket(hostname,9999);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(s.getOutputStream(),true);
output.append("Connected to Server...\n");
catch(UnknownHostException e)
System.err.println(e);
catch(IOException e)
System.err.println(e);
// initialise a listener thread to catch messages from server
listener = new Thread(this);
listener.start();
System.out.println("Listener started");
// listener.start() creates a thread which calls run()
public void run()
// just loop reading the input stream
try
while(true)
String line = in.readLine();
System.out.println("Received from Server:" + line);
output.append(line + "\n");
catch(IOException e)
System.err.println(e);
// when the Thread is killed...
finally
listener = null;
input.setText(" ");
out.close();
public static void main(String args[])
chatClient c = new chatClient();
c.runClient();
Can someone show me the way?

Yes positiv this is how my server looks try for your self :
import java.net.*;
import java.io.*;
import java.util.*; /* we need a vector to handle unknown numbers of connections */
public class chatServer
public chatServer() throws IOException
/* we're not too bothered about the exception details, so
we'll acknowledge it here instead of writing lines of
code to analyse it */
// initialise new ServerSocket
ServerSocket s = new ServerSocket(9999);
// loop listening for connections and instantiate a new handler for each one
while(true)
Socket client = s.accept();
System.out.println("Accepted connection from " + client.getInetAddress()+":"+ client.getPort());
chatHandler c = new chatHandler(client);
c.start(); // chatHandler is derived from Thread, so we can call start()
public static void main(String[] args) throws IOException
chatServer cs = new chatServer();
} // end class definition
// define class chatHandler as a derivation of Thread
class chatHandler extends Thread
// declare variables
protected Socket s;
protected BufferedReader in;
protected PrintWriter out;
protected static Vector handlers = new Vector();
public chatHandler(Socket s) throws IOException
// assign socket passed to object to class variable s
this.s = s;
// initialise streams
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(s.getOutputStream(), true);
     System.out.println("Readers and Writers initialised");
public void run()
System.out.println("run called");
try
// add this thread to class variable vector
handlers.addElement(this);
          System.out.println("Element added to Vector");
// loop reading input and passing it to broadcast method
while(true)
               System.out.println("About to read inputstream");
String message = in.readLine();
               System.out.println("Input Stream read");
               System.out.println(message);
broadcast(message);
               System.out.println("Message passed to broadcast method");
catch(IOException e)
System.err.println(e);
// if this thread is killed....
finally
// remove it from the vector
handlers.removeElement(this);
try
// tidy up debris!
s.close();
catch(IOException e)
System.err.println(e);
// this static method is used by all threads
protected static void broadcast(String message)
/* to prevent two threads trying to access the vector
simultaneously we use a synchronized block */
     System.out.println("Broadcast called");
synchronized(handlers)
/* The Enumeration interface gives us a quick way of looking at
a vector which by definition is an unknown length */
Enumeration e = handlers.elements();
// returns true if there are other sockets running
while (e.hasMoreElements())
// loop to the next chatHandler in the vector
chatHandler c = (chatHandler) e.nextElement();
// write the message to it
try
/* prevent two threads trying to write
to the stream c.out */
synchronized(c.out)
c.out.println(message);
} // end synchronized block
//c.out.flush(); we set the boolean autoflush to true in the constructor
catch(Exception ex)
System.err.println(ex);
// explicitly stop the thread if exception is thrown
c = null;
} // end while loop
} // end synchronized block
} // end broadcast
} // ends class

Similar Messages

  • Print System.out.println messages into logs of Weblogic Application Server

    Hi,
    I use Weblogic Application Server 10.3.6 on Windows 7. The Enterprise Application (J2EE) is deployed into the 'AdminServer' of Weblogic. For debugging purpose, I have added a few System.out.println statements.
    I am unable to see the print messages on any of log files available in path 'user_projects > domains > base_domain > servers > AdminServer > logs'. However, I can see them on the 'command' prompt which was used to start the server. How can I get them into one of the log files? What am I missing?
    I tried reading other threads on the forum and as per them 'System.out.println' gets logged onto *.out logs which I am unable to find. Only base_domain.log, AdminServer.log, access.log are available in the location.
    More Specifics:
    Configuration on WLS console 'Home > Servers > AdminServer > Logging'
    Log file name: logs/AdminServer.log
    Min. Severity to log: Notice (tried with Debug as well)
    Advanced Options:
    Logging Implementation: JDK
    Redirect stdout logging enabled: False (tried both options)
    Log file Severity Level: Notice (tried with Debug as well)
    Standard Out Severity Level: Notice (tried with Debug as well)
    Thanks

    Paul,
    I just found this on google:
    'Generally, developers put a lot of System.out.println statements in their code to perform application debugging. Normally, all standard outputs and error outputs are routed to the console where the OC4J server is started. If you want to capture the standard output and error outputs to files for logging/debugging purposes, then you can use the -out and -err options while starting up the Oc4J server to specify which files to use.'.
    http://www.onjava.com/pub/a/onjava/2002/01/16/oracle.html?page=2

  • Where to see the System.out.println() messages

    I deploy my application in Oracle9ias . I have some System.out.println() statements in java class files.
    When I run the application I need to know where I can see those println() statements.

    The Member Feedback forum is for suggestions and feedback for OTN Developer Services. This forum is not monitored by Oracle support or product teams and so Oracle product and technology related questions will not be answered. We recommend that you post this thread to the Application Server-General forum. The URL is:
    Oracle Application Server - General

  • Tomcat Java Servlets, how to log System.out.println() messages

    I have recently installed a new (x86) Mac OS Xserve, and am porting some Java application Servlets from an existing older Mac OSX server. All the servlets were working (I am connecting via port 9006). I have carefully used the old JDK 1.4 compiler, edited my server.xml (for port 9006) and web.xml files, etc. The Tomcat example servlets work fine, and all my (other) servlets work fine, with one exception, where I get the typically vague "java.io.IOException: Server returned HTTP response code: 500" message.
    Trouble is, I cannot get the Java System.out.prinln statements to go to the Tomcat/logs/ log files (they are all there and updating with Tomcat HttpServlet messages), in order to properly debug.
    Is there a server.xml value somewhere I can make the change?
    On another minor (possibly related) point, does anyone know what the path info ='null' means in the Tomcat access log? e.g.,
    StandardContext[/my_servlets]: Mapped to servlet 'myServlet' with servlet path '/myServlet' and path info 'null'
    It is the only other suspicious message I get in all the logs.
    One other point: my java application that fails uses threads. All the individual classes that use the threads work when run interactively, but as soon as I call them from final Serlet class that extends HttpServlet, I get a null pointer exception. Is there something unique about the Tomcat 4.1 threading that could be causing it?
    I want to avoid upgrading to Tomcat 5 at this point, if I can avoid it. My applications are modest in scope, and the last time I upgraded to Tomcat 5, it took me days to get it working properly, and I lost all access to it from the Server Admin application.

    I have found a solution: Via the Tomcat Admin web page I set the Context field "Swallow Output" to "true".

  • Is there a way to make system.out.println() scroll down as it goes?

    I am writing a program where I want to be able to read what's printed out in the console of my IDE through System.out.println() as the program runs/after the program runs. However, right now I run the program, the message prints out, and then when I go to read it the scroll bar is all the way up so I can see only the top of the print-out (the first thing printed out). Is there any way I can get the console to scroll along with the text, kind of like floating boxes you see on various websites for various reasons? In other words, can I get it so that when I look in the console at any given moment of the program running, I am looking at the newest text printed out (the text at the bottom of the "page")? Thank you!

    That would be an IDE problem and not a Java one. You could redirect output into a text file so you can read at your leisure and scroll up and down as much as you like.

  • Where to see the System.out.println statements on soa server.

    Hi,
    I have generated some proxy classes in my jdeveloper. And I have deployed that project to the admin server on my soa_domain.
    Now my java files have some System.out.println statements. I want to see those values.
    Can anyone please let me know where I can see those statements on server.
    What s the file name where i can see.
    do i have to enable some debigging on the server. if yes then for what level i need to enable the log at what level.
    Thanks
    Anoop

    Hi,
    System.out.println is not really a good way to debug in weblogic... If you didn't configure where the stdout will go those messages can end up going nowhere...
    I suggest you use one of these...
    This will go to the soa*diagnostic logs... for example DOMAIN_HOME/servers/soa_server1/soa_server1-diagnostic.log...
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import oracle.fabric.logging.LogFormatter;
        private static final Logger soa_logger = Logger.getLogger("oracle.soa.Logger");
        static {
            LogFormatter.configFormatter(soa_logger);
            soa_logger.log(Level.INFO, message);
            soa_logger.log(Level.INFO, message, t);or
    This will go to the server logs... for example DOMAIN_HOME/servers/soa_server1/soa_server1.log...
    import weblogic.logging.NonCatalogLogger;
        private static NonCatalogLogger weblogic_logger = new NonCatalogLogger("SomeMeaningfulNameHere");
            weblogic_logger.notice(message);
            weblogic_logger.notice(message, t);Usually info and notice will go to the logs by default, you can try with higher levels (error,warning) as well or you can tweek the server debug level to use lower levels...
    Cheers,
    Vlad

  • System.out.println - Hello World Example

    Hi All
    I am using Apache Tomcat and trying t produce a simple output to the browser. Cannot get System.out.println to work. See code and out below:
    begin code
    <HTML>
    <HEAD><TITLE>hello jsp</TITLE></HEAD>
    <BODY>
    <%@ page language='java' contentType='text/html' %>
    <%
    String message = "Hello World";
    message = message + "\nAFTER";
    System.out.println("BEFORE");
    %>
    <%= (message) %>
    </BODY>
    </HTML>
    END code
    --begin browser output
    Hello World AFTER
    end browser ouput
    Would be grateful if someone could explain why the System.out.print statement cannot be seen in the browser output.
    many thanks
    Naresh

    System.out prints to System.out. What that is depends:
    In applets, (which the OP was not talking about) it is the Java Console.
    In JSP, it's the same as any application by default.
    You can change in Java what System.out prints to, but you don't often do this. But in JSP it doesn't print to the browser. JSP is not CGI, which does you the standard out as the destination for written data.

  • Calling out.println in a jsp function

    Hi, i want to call out.println in a jsp function. That is i am using function like this
    <%!
    void MyFunction()
    out.println("this is good");
    %>
    This code fails with error message: "out cannot be resolved"
    Also i don't want to return value from the function, since i will later call this function recursive and display value at each instant.
    Please suggest any solution.

    <%!
    void MyFunction(JSPWriter out)
    out.println("this is good");
    %>and then execute it with:
    <% MyFunction(out): %>

  • System.out.println capture to buffer

    Hi All,
    My application runs other application in back. How can I capture system.out.println() written by another application & display via dialog box.
    Like :execl() or execv() function in C runtime library. Where every printf() message printed to passed buffer.
    Thank you,
    Avin Patel

    If i understand your question correctly, you should execute command for you help.html file. The system will run default browser.
    such as:
    void runBrowser(String file)
    {String cmd = null;   
         Process p;   
              try  {       
                   String os = System.getProperty("os.name");            
                   if (os != null && os.startsWith("Windows")) {           
                        if (os.startsWith("Windows 9") || os.startsWith("Windows Me")) 
                        // Windows 9x/Me               
                             cmd = "start " + file;
    else
                        // Windows NT/2000/XP               
                             cmd = "cmd /c start " + file;
    p = Runtime.getRuntime().exec(cmd);            
    catch(IOException x)
    // couldn't exec browser
    System.err.println("Could not invoke browser, command=" + cmd);
    }

  • System.out.println not showing up in the console

    Hi,
    I've some System.out.println statements in a static block in a Stateless
    Session Bean. I could not see these outputs in the Weblogic console. I'm
    using Weblogic 5.1 Any one faced this problem before? any help is
    appreciated.
    Thanks & Regards,
    Nithi.

    Take a look in the weblogic log files they might be redirecting std out.
    "Ryan LeCompte" <[email protected]> wrote:
    >
    Hello Nithi,
    I'm all out of ideas, unfortunately! However, check out the following
    links for
    some possible insight into the problem:
    http://groups.google.com/groups?q=System.out.println+5.1+WebLogic&start=60&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=3d3df18e%40newsgroups.bea.com&rnum=69
    http://groups.google.com/groups?q=System.out.println+5.1+WebLogic&start=70&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=3977417b%40newsgroups.bea.com&rnum=71
    http://groups.google.com/groups?q=System.out.println+5.1+WebLogic&start=200&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=3bc20346%241%40newsgroups.bea.com&rnum=209
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    "Nithi Rajan" <[email protected]> wrote:
    Hi Ryan,
    Thanks for your reply and sorry for the long silence. I was on vocation.
    Thre problem still remains.I'm very sure that the EJB
    is deployed by WebLogic as I'm able to call some methods.
    and I'm also calling EJB methods from Servlet. But my
    System.out.println statments work fine in the Servlet and
    not inside EJB (or anyother classes used by EJB).
    Any one has faced similar problems? BTW am using WebLogic 5.1
    Thanks in advance,
    Regards,
    Nithi.
    "Ryan LeCompte" <[email protected]> wrote in message
    news:[email protected]...
    Hello Nithi,
    I find it strange that your System.out.println statements are beingexecuted from
    within your servlets, but not in your stateless session bean. Are
    you
    positive
    that your EJB is being located and deployed by WebLogic? The statementsin
    your
    static { } block should be executed as soon as the WebLogic class
    loader
    finds
    the class and loads it into the JVM. I would suggest examining theconsole
    and
    try to determine if your EJB is in fact being deployed. Are you invokingmethods
    on the EJB inside of your servlets? Are you using any logging frameworkfrom within
    the EJBs which would redirect output to a file?
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    "Nithi Rajan" <[email protected]> wrote:
    Hi Ryan,
    Thanks for your reply. The setting in the weblogic.properties is
    as
    follows.
    weblogic.system.enableConsole=true
    So, that tells me that I should see all the System.out.printlns right?
    (Pleasecorrect me if I'm wrong). I can see all the System.out.println
    from
    my
    servletand not from the Session Bean (even if the System.out.println
    is
    outside
    static block).
    Please let me know your thoughts.
    Thanks & Regards,
    Nithi.
    "Ryan LeCompte" <[email protected]> wrote in message
    news:[email protected]...
    Hello Nithi,
    Are you sure that you don't have WebLogic configured to redirect
    all
    messages
    to a file instead of the console? Are you able to see yourSystem.out.println
    statements when placed within other methods of your stateless sessionbean? Please
    be a bit more specific.
    Thank you,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    "Nithi Rajan" <[email protected]> wrote:
    Hi,
    I've some System.out.println statements in a static block in a
    Stateless
    Session Bean. I could not see these outputs in the Weblogic console.
    I'm
    using Weblogic 5.1 Any one faced this problem before? any helpis
    appreciated.
    Thanks & Regards,
    Nithi.

  • How does System.out.println(). Work inside src.zip file !

    Hello guyz,
    I was just wondering how System.out.println() worked so i opened up the src.zip file and checked the source code. But could not understand it. As written i remember
    "out is an object encapsulated in the System class."
    Thats ok. But i could not understand the code.
        public final static PrintStream out = nullPrintStream();
        private static PrintStream nullPrintStream() throws NullPointerException {
         if (currentTimeMillis() > 0) {
             return null;
         throw new NullPointerException();
        }Also when i ran the DJ Decompiler it decompiled it to this:
    public class One
         public static void main(String args[])
              System.out.println("hello world");
    import java.io.PrintStream;
    public class One
        public One()
        public static void main(String args[])
            System.out.println("hello world");
    }Also, why does it need to import PrintStream ?

    Peter__Lawrey wrote:
    I was just wondering how System.out.println() worked so i opened up the src.zip file and checked the source code.This value is a place holder. This value is changed as soon as enough of the JVM is initialised for printing to work.
    Also, why does it need to import PrintStream ? It doesn't, but it is used in the code so DJ is including it just in case.Sorry,
    But i don't understand at all.

  • Linux System.out.println()

    I am porting some JSP's from Windows to SUSE Linux. These JSP's call functions that are embedded in JAVA classes, which in turn output error messages with System.out.println() to the console. It appears that in Linux, the bash Konsole doesn't print these errors, so they are invisible.
    I suppose that if I wrote JSP's in the future, errors could be printed in the browser, but I would really like to be able to see my errors in bash or which ever shell. Any help would be appreciated.

    If you ever intend to use more than one webserver, I would suggest you look towards something like JMS. Messages can be sent to the queue from which you can pick them up and deal with them as necessary in your own time, be that real-time or delayed.
    If you think you will never need more than one, why not write a little log file reader? Remember though that the catalina.out file will grow and grow unless you stop Tomcat, rename the old file and restart Tomcat.

  • Strange behavior with System.out.println

    I was working with the following code:
    1. public class DemoChar {
    2. public static void main(String args[]) {
    3.
    4. char buf[] = new char[50];
    5. buf[0] = 'a';
    6. buf[1] = 'b';
    7. buf[2] = 'c';
    8. buf[3] = 'd';
    9. buf[4] = 'e';
    10. System.out.println( buf);
    11. }
    12. }
    if you print "buf", it really works; however if you change line 10 by :
    System.out.println("--->" + buf );
    The method "println()" doesn't write "--->abcde". The functionality doesn't the same. It will appear "----> [C@3e25a5"
    Could you help me?
    I don't understand that behavior. I am using "java version 1.6.0_07"

    buf's an array and thus is an object. object's don't inherently know how to represent themselves as Strings, so you have to do other things to make sure that they print out ok. To get a char array to print well, you could use the String method valueOf(...):
    public class DemoChar
      public static void main(String args[])
        char buf[] = {'a', 'b', 'c', 'd', 'e'};
        System.out.println(buf);  // this seems to call implicitly String.valueOf(buf)
        System.out.println("--->" + buf);  // this however seems to call buf.toString() with different results
        System.out.println("--->" + String.valueOf(buf));
    }Also, when posting your code, please use code tags so that your code will retain its formatting and be readable. To do this, you can will need to paste already formatted code into the forum, highlight this code, and then press the "code" button at the top of the forum Message editor prior to posting the message. You may want to click on the Preview tab to make sure that your code is formatted correctly. Another way is to place the tag &#91;code] at the top of your block of code and the tag &#91;/code] at the bottom, like so:
    &#91;code]
      // your code block goes here.
      // note the differences between the tag at the top vs the bottom.
    &#91;/code]or
    {&#99;ode}
      // your code block goes here.
      // note here that the tags are the same.
    {&#99;ode}Edited by: Encephalopathic on Aug 21, 2008 9:40 AM

  • How to view System.out.print() messages for adapters in OIM 9.0.3

    I have created an adaptor for OIM from a java jar file. When that adaptor executes after some updates on tables it produces some execptions/error.
    I can not see the details of these exceptions as I do not know where is the standard output located when adapter is executed via OIM.
    Where cen I see output from my code lines that contain: System.out.println()?
    thanks

    I am not sure if logging is enabled as OIM was installed previously by another person - how can I check if it is enabled and how to use log4j in this case?
    OIM Design Console window shows no messages comming from my System.out.print() statements.
    /br
    Djeno

  • System.out.println in Java Studio Creator 2

    Where do my debugging messages sent to System.out.println go?
    In my other installations of netbeans they went to a window in the IDE but I can't find them with JSC 2.

    you can use System.out.println("") to write something in output (which in web applications it is web application log file)
    also in creator you can use log("") to write something in output which again is the log file.
    you can view the log file by right click on server / view log file

Maybe you are looking for