WebCream Frequently Asked Questions

What operating systems and platforms does WebCream run on?
WebCream is written purely in Java and it doesn't use any native calls, which means that it runs on most platforms that have Sun's JDK 1.2 and up. However, because WebCream integrates very closely with JVM we can only guarantee correct execution on the platforms that we have tested. So far this includes Windows NT, Windows 2000, Solaris, HP-UX, IBM AIX and Linux.

What web servers and servlet engines can I use with WebCream?
Any web/app server or servlet engine that runs Sun's JDK 1.2.2 and higher and JSDK 2.1 and higher. For a complete list and details on how to setup WebCream with your servlet engine refer to Installation and Setup instructions.

Will WebCream really web-enable any application?
The first thing to do is to check that your application can run on the server where you are trying to deploy it. Just run it as an application and test the functionality. Our product has been tested on numerous applications and has many successful deployments. Most of the times you would see 95% of your application working as HTML portal right after 30 minute configuration of WebCream. However, certain problems may arise from the fact that your application is accessed through HTML. For example, not all GUI events are sent to your application for performance considerations so if you enable/disable certain controls when a "change" event is received, your interface will not work as expected. It's not a problem of WebCream or your application but rather a limitation of HTML and the Internet speed. Thus, you may have to make minor changes to your application user interface for it to look better and function properly in HTML, but using WebCream gives you a tremendous advantage compared to rewriting your application using Servlets/JSPs or writing both GUI and HTML clients.

Are there step-by-step instructions on setting up WebCream and web-enabling my application?
Yes. Please refer to Installation and Setup instructions.

Does WebCream support custom controls (e.g. my own controls, JBCL, KLGroup JClass)?
WebCream supports most AWT and Swing controls and all controls derived from it. This means that if the custom control extends a standard control above java.awt.Component or javax.swing.JComponent then it will be automatically supported. Of course it is going to be presented in HTML just like the original AWT/Swing control would have been. For example if you create a custom control that extends JComboBox then it will be supported and converted to HTML menu. You can change the default rendering by writing custom renderers.

Can I customize WebCream to change the default mapping of GUI components to HTML elements?
Yes. A number of configurable parameters are specified in the application properties file located in the conf directory of WebCream. For details on the meaning of each parameter refer to Customizating and Configuring WebCream. For advanced customization you can write your own Renderers and ActionEmulators that will override the default implementation provided by WebCream. Renderers generate HTML for Java controls and ActionEmulators set values back to Java controls and emulate actions as though performed by the user (for example button click). This functionality is not provided in the Standard Edition. Follow the link to learn about developing custom renderers.

How can I integrate WebCream application into a JSP or HTML page?
The easiest and the cleanest way to integrate WebCream output into a JSP or HTML page is to use <IFRAME> or <FRAME> tag. CreamTec website uses this approach to display demos in the context of the site.

Do I need to have a Java plugin to view pages generated by WebCream?
No. You use any standard browser because all it gets is HTML. It doesn't even need to support Java because the Java application executes on the server.

What AWT and Swing components and classes are supported by default by WebCream?
AWT Button, CheckBox, Choice, Label, List, MenuBar, TextArea, TextField, Panel, Window
Swing Box, BoxFiller, Icon, JButton, JCheckBox, JComboBox, JDesktopPane, JEditorPane, JInternalFrame, JLabel, JLayeredPane, JList, JMenuBar, JOptionPane, JPanel, JProgressBar, JRadioButton, JRootPane, JSlider, JSeparator, JScrollBar, JScrollPane, JSplitPane, JTable, JTabbedPane, JTextArea, JTextField, JToggleButton, JToolBar, JTree, JViewport, JavaHelp (via Override Action), JFileChooser
Layouts BorderLayout, BoxLayout, FlowLayout, GridBagLayout, GridLayout, null

WebCream provides a universal SnapshotRenderer that can render any component as an image on the page. It can be used for custom components and as an alternative method of rendering a component in HTML.

What GUI events are supported by WebCream?
ActionListener, FocusListener, ItemListener, DocumentListener, TreeSelectionListener, ListSelectionListener (for DefaultListSelectionModel only)

How scalable is WebCream? What performance can I expect out of it when the number of users grows?
The quick answer is as scalable as your application and the server you are running it on. WebCream adds a thin layer that replaces the Java graphical environment and emulates the events. In many aspects it can make your application run faster because no drawing, buffering and output to the screen occurs in the emulated mode. There are less events to process and less memory needs to be allocated and garbage collected. Using dynamic clustering you can combine several virtual clients into the same JVM and that can give a significant performance improvement to each client. You can specify how many virtual uers should emulated by each JVM, and if there are more users connecting then a JVM can handle, WebCream will launch a new one. JVMs are pooled and are "warmed up" in the background to ensure that a new user session is handled instanteneously. For example, if your client code is fairly thin, you may choose to have up to 100 virtual clients in a JVM. In this case, if your server will need to handle 5000 concurrent users WebCream will use 50 JVMs. Typically, one running JVM takes 10-20M so the total amount of memory needed to support this traffic would be 500-1000M. In general, you probably should expect higher resource consumption and slower response time then a pure servlet solution, but remember that you are getting to run your app in both a GUI mode and HTML mode. Check out this Excel spreadsheet to see specific performance data and the difference in memory consumption and response time between a regular GUI app, simple servlet and WebCream emulation. Note that the Excel table shows data for one JVM. WebCream applications has been load tested for thousands of concurrent users and the response time has always been adequate.

I'm actually trying to convert Java to C/C++, can WebCream do this?
WebCream can only convert Java GUIs to HTML for web-enabling. If you want to convert Java to C/C++ you can check out Cigee JavatoDLL which creates a C/C++ interface and a Windows DLL from your Java classes. It thereby enables you to use your Java classes from within a wide range of programming languages and environments under Windows and other operating systems.

How does WebCream determine the name of the downloaded file when emulating JFileChooser Save dialog?
WebCream calls JFileChooser.getSelectedFile() method to determine the name of the file. If the method returns null, WebCream uses the default download.txt file name. Thus, be sure to set the default file name to the JFileChooser as shown below:

            JFileChooser chooser = new JFileChooser();
            chooser.setApproveButtonText("Select file for export");
            chooser.setSelectedFile(new File("application_export.txt"));
            int returnVal = chooser.showSaveDialog(this);
            if(returnVal == JFileChooser.APPROVE_OPTION) {
                File file = chooser.getSelectedFile();
                // Save data to the selected file

I have a problem running my application through WebCream. Where do I go for help?
Refer to Troubleshooting WebCream page or simply search our website.

<< back to Documentation


We welcome your questions or comments. Please Email us at info@creamtec.com.
Copyright CreamTec, LLC. All rights reserved

Home |  WebCream |  Contact