PROBLEM
At ArcGIS 10, the Java Web ADF updates Java Server Faces (JSF) libraries to 1.2. This results in an updated Document Type Declaration (DTD) in the applications web.xml and faces-config.xml. JSF 1.2 works with Servlet 2.5 and JSP 2.1 specifications, and it requires application servers that support these specifications.
Servlet 2.5 adds support for annotations whereby applications servers are able to scan all the classes in the .war file to process the annotations. This process may take an exceptionally long time to deploy in WebSphere v7, exclusively.
All other supported applications servers deploy Esri applications without incident.
Workaround:
If it is not possible to upgrade to the Fix Pack provided in the Solution section above, execute the following deployment steps:
1. Extract the arcobjects.jar from the Java Web ADF Web Mapping Application (WMA) or custom Java Web ADF application.
Note:
When creating a WMA in Manager or an IDE Plug-in using an ArcGIS Server Local connection, arcobjects.jar is bundled in the application's WEB-INF\lib folder. To remove this library, open the *.war file generated using the jar extract function: jar x[v]f jarfile [inputfiles] [-Joption].
To extract the contents of the WMA .war file, replace ‘jarfile’ with the name of the WMA application. Once all the contents are extracted, navigate into the extracted application's ‘WEB-INF’\lib\’ folder to remove the arcobjects.jar file.
Note:
Re-jar the WMA application without arcobjects.jar with the following command: jar c[v0M]f jarfile [-C dir] inputfiles [-Joption]
Replace ‘jarfile’ with the name of the WMA application. There are many ways to accomplish this task including using ZIP file manager programs.
For a complete listing of the Java Archive Tool used here, refer to Standard Java Documentation.
Once arcobjects.jar has been removed from the WMA application, the application can be deployed to WebSphere using the normal deployment process and the application can be started.
Note:
Add arcobjects.jar to WebSphere shared libraries. Shared libraries can be used by multiple applications and can be defined using the WebSphere administrative console under ‘Environment > Shared Libraries’.
Results
When running the application, classes represented in the arcobjects.jar file are loaded into the application class loader and are available to the application.
To verify association between an application and the ArcObjects shared library, examine the class loader in the Class loader viewer provided by the WebSphere administrative console. Click ‘Troubleshooting > Class loader viewer’. Navigate the resulting tree to find the server/module and application. Click on the application and select ‘Table View’ from the Enterprise Applications Topology page. The classpath of the application module class loader lists the classes used by the ArcObjects shared library.
Get help from ArcGIS experts
Download the Esri Support App