How to read console output from Grails

273 Views Asked by At

My grails app has an external java library which I developed. I want my grails app to be able to display my java library system.out statements (console output). How do I go about doing that?

I would rather not have to write it out to a file then read it in grails. There must be a better way of doing this.

**I want grails to display these to a text box as the happen(In a browser while its running(so the user can see))


Afer trying several of my own ways I have to settle for this way which I will post here. Thanks @Shaunak for your help and understanding.

**How I solved it.

In my java library I created a global class which all the System.outs will be wrote to

writeSouts(String sout){     
    //store here in a global string and keep appending to it as needs be          
}

Then in grails constantly call the java library method. and using Ajax write it out to the browser window.

Hope this helps anyone in the future who encounters the same problem.

Also it is not for testing but an integral part of my web app so that the user of the web app can was the java library is doing in the background.

1

There are 1 best solutions below

0
On

Without much details on how exactly you are invoking the Java Library, I will assume here that it is just some code that writes to console, and you want to invoke and read it from inside Grails controller and send it back to HTML. Here's what I would suggest. Instead of including the Java Code as a library, create a command line utility out of it.

So your java program will be invoked for testing like so,

java MyLib -arg1 -arg2

This will should out put something like this on the command line:

> This is my nice output

Now to to invoke and read this from grails, you can use Groovy's External Process Management and do something like this to invoke and read the output:

def process = "java MyLib -arg1 -arg2".execute()
def response = "Found text ${process.text}"

Your response var should now have value

Found Text This is my nice output 

You can now use this to do what ever in a grails controller, like send it back to HTML..