Distributed: [AIX MacOS Linux Windows]

Developer Tools known restrictions

Several known restrictions apply when you are working with WebSphere® Application Server Developer Tools for Eclipse.

List of known issues and restrictions:

Unable to interact with the Liberty server after you modify the console log level settings

There is a known limitation when the console log level is set to WARNING, ERROR, or OFF. The workbench has problems when it interacts with the Liberty server, such as cannot start, stop, or publish to the server. For example, the workbench is unable to start the Liberty server and the following timeout error message displays:
This is a screen capture of the server timeout error message: Server WebSphere Application Server V8.5 Liberty at localhost was unable to start within 60 seconds. If the server requires more time, try increasing the timeout in the server editor.

The console log level (consoleLogLevel) is an attribute of the logging configuration element in the server configuration (server.xml) file with the following range options: INFO, AUDIT, WARNING, ERROR, and OFF. AUDIT is the default value for the console log level settings. For more details, search for the consoleLogLevel attribute in the Liberty kernel topic.

To work around this known limitation, specify INFO or use the default AUDIT setting for the console log level:
  1. In the Servers view, expand your Liberty server.
  2. Right-click the Server Configuration[server.xml] node and select Open.
  3. In the Server Configuration editor and under the Configuration Structure section, expand Server Configuration node. The next step depends if the Logging element is available:
    • If the Logging element is available, select it and under the Logging section of the server configuration editor, use the drop-down menu for the Console log level field, and select either the AUDIT or INFO option. Type Ctrl + s to save your changes in the editor.
    • If the Logging element is not available, the workbench is already using the default AUDIT setting. As a result, you might be experiencing a different problem that is causing interaction failures between the workbench and the Liberty server.
    .

Copying and pasting servers might cause the publishing state to become out of synchronization

Try to avoid copying and pasting servers because they point to the same configuration file. Copying and pasting servers might cause the publishing state to become out of synchronization. For example, when you remove an application from one server, the application still appears to be deployed to the other server even though it is not. Server state will not synchronize up again until the next publish operation.

Unable to recognize the start of the server when the hideMessage attribute is used to suppress the message

You can configure the <hideMessage> attribute in the Logging element of Server Configuration [server.xml] to suppress messages. If you configure to hide the server start message, for example <logging hideMessage="CWWKF0011I"/>, then the tool fails to recognize the state of the server when it is started. In such a situation, the state of the server in the Server view remains as starting until timeout and finally displays the following message:
Error message that is displayed when the tool does not recognize that the server is started.

Remote servers cannot run projects that were created with a newer version of Java

If you compile a project with a higher version of Java than your remote server is running, you can receive the following error messages:

Error 404: javax.servlet.UnavailableException: 
SRVE0202E: Servlet [s1]:  s1 was found, but is corrupted: 
SRVE0227E: Check that the class resides  in the proper package directory. 
SRVE0228E: Check that the classname has  been defined in the server using the proper case and fully qualified  package. 
SRVE0229E: Check that the class was transferred to the filesystem using a binary transfer mode. 
SRVE0230E: Check that the class  was compiled using the proper case (as defined in the class  definition). 
SRVE0231E: Check that the class file was not renamed after it was compiled.

If you create a project in a package with a higher version of Java than your remote server is running, you can receive the following error messages:

Error 404: java.io.FileNotFoundException: SRVE0190E: File not found: /s2
Console output: [ERROR   ] SRVE0266E: Error occurred while initializing servlets: java.lang.UnsupportedClassVersionError:  JVMCFRE003 bad major version; class=s1, offset=6
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:383)
at com.ibm.ws.classloading.internal.AppClassLoader.definePackageAndClass(AppClassLoader.java:318)
at [internal classes]

To avoid these errors, compile your project with the same version of Java that your remote server is running, or with an earlier version. You can also create your project in a package with the same version of Java that your remote server is running, or with an earlier one. To find the Java version of the remote server, check the messages.log file. For more information about viewing the messages.log file, see Viewing trace and message log files by using developer tools.

Some utilities are unavailable when you use a remote Liberty server or a Liberty server in a Docker container

The tools do not support the following utilities when you use a remote Liberty server:
  • Generate Web Server Plug-in
  • Add Configuration Snippets
The tools do not support the following utilities when you use a Liberty server in a Docker container:
  • Generate Web Server Plug-in
  • Package Server
  • Add Configuration Snippets
Remember: You can access the available utilities by right-clicking your server and selecting Utilities > Utility Name....

A change in the default Liberty runtime name can cause project migration

The default Liberty runtime name was changed from WebSphere Application Server Liberty to Liberty Runtime. Projects that are targeted to a runtime with the old default name must be migrated when they are imported into a workspace where the runtime has the new default name. When you import the project, the Workspace Migration wizard automatically prompts you to migrate the project to the new runtime name.

Application shows twice under the server in the Server view

The tools expect that the application project name in Eclipse matches the application name that is specified in the server configuration. When you use the tools to deploy your application, the application project name matches the application name in the server configuration. However, if you add the application directly to the server configuration file, check that the project name in Eclipse matches the application name. When the project name does not match the application name, the tools do not recognize that they are the same application, so the application is added to the server configuration again.

Server error when enabling or disabling running applications directly from the server

If your application fails to start after enabling or disabling running applications directly from the server and you see the following error message from the server in the Console view, restart the server to work around the problem. This issue only occurs with the 19.0.0.8 and 19.0.0.9 versions of the Liberty server.
[ERROR] CWSRS1001E: JAX-RS metadata could not be built for the dt-ejb module due to the following error: java.lang.NullPointerException
	at com.ibm.ws.jaxrs.metadata.ejb.ArchiveInfoImpl$1.run(ArchiveInfoImpl.java:207)
	at [internal classes]

Unable to interact with the Liberty server after modifying the JSON logging field names

If you use one of the following methods of modifying the JSON logging field names and you modify the message field name, the tools will have problems interacting with the server such as cannot start, stop, or publish to the server. Leave the message field name unchanged when using the tools.

  • Environment variable:WLP_LOGGING_JSON_FIELDS
  • Bootstrap properties:com.ibm.ws.logging
  • server.xml logging element attributejsonFields