Web Server (Jetty) Overview

BBjServices integrates a Web Server based on the Eclipse project’s server, Jetty. Jetty serves applications in production all over the world and is an industrial-strength solution. General server-wide configuration happens in Enterprise Manager. This type of configuration covers the server ports, hostname, and SSL configuration. BBj makes use of Jetty in a few different ways. The specific services are configured in other parts of Enterprise Manager, or within a BBj program. BUI, Web Start, Web Services, and the demos are all handled within Enterprise Manager.

By default, Jetty serves http requests on port 8888 and https requests on port 8443. To customize the ports from the Web Configuration:

  1. Expand BBjServices.

  2. Double-click Servers in the BBj EM Navigator and the settings tab will open to the right.

  3. Expand the Web settings to see the configurations.

Jetty, by default, logs to the request.log file in the logs directory. Each request to the Web Server generates a line in the logfile. Each line includes the IP address of the remote host, the time and date, and finally the http request. Logged information is not currently configurable.

Jetty serves any files in the htdocs directory under the /files path prefix. For example, the file BBj.png resides in the htdocs/images subdirectory of BBj home. To view that image directly in a web browser, navigate to localhost:8888/files/images/BBj.png (all paths are case sensitive).

By default, BUI applications are served under the /apps path prefix, but this path prefix can be altered under the Context Configuration . When the application named “test” is published in Enterprise Manager, the application is reachable through localhost:8888/apps/test. BUI applications may be published programmatically as well.

By default, Web start applications are served under the /jnlp path prefix, but this path prefix can be altered under the Context Configuration. Applications are configured in the JNLP section of Enterprise Manager. Signed jars are also available from the /jnlp prefix. Any jar placed in the lib directory will be copied to a cache directory, compressed, and signed. Download BBjThinClient.jar directly from localhost:8888/jnlp/BBjThinClient.jar or the packed version from localhost:8888/jnlp/BBjThinClient.jar.pack.gz.

By default, Web Services are served from the /webservice path prefix, but this path prefix can be altered under the Context Configuration . Web Services are configured in the Web Service section of Enterprise Manager. Accessing a Web Service generally requires creating a specialized client to use the service. However, the WSDL (Web Service Description Language) file is available directly. The BUS Web Service is installed by default in BBj, accessible from localhost:8888/webservice/BUS?wsdl.

By default, BBjServlets are served from the /servlet path prefix but this path prefix can be altered under the Context Configurationand BBjServlets are deployed programmatically. See BBj Servlet Overview.

Demos, and built-in basis applications are available via the /basis prefix. Demos for Web start and BUI are available in their respective sections of EM. Enterprise Manager itself may be launched from localhost:8888/basis/em.jnlp.

Jetty is a powerful and complicated Web Server. BBj distills the complexity down to a few key features. Globally, BASIS provides SSL configuration and logging. These apply to all of the specific BBj web actions - file serving, Web Start, BUI Web Services, BBjServlet, and the BASIS demos.

Some of the more advanced aspects of the Jetty server by setting these properties within BBj.properties:

  • com.basis.jetty.allowAliases={true|false}
    under the Linux operating system this property will tell Jetty to follow symbolic-links in the filesystem when serving content.

  • com.basis.jetty.maxBufferSize={value}
    changes the internal Jetty value that controls when content being served will become chunked and thus lose the content-size and content-type headers.

  • com.basis.jetty.maxFormKeys={value}
    sets the maximum number of keys Jetty will accept in a POSTed http request.

  • com.basis.jetty.macContentSize={value}
    controls the maximum size of a POSTed http request that Jetty will accept.

See also

BBj Web Server

BBj Web Services

Providing Web Services

Consuming Web Services

Enterprise Manager - JNLP Configuration

Enterprise Manager - Web Configuration

Enterprise Manager - Context Configuration