<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.esri.com/Dev/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ArcGIS Java Technology Blog</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Debug Build: 61120.2)</generator><item><title>Web Mapping Applications made easy with Eclipse ArcGIS plug-ins</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/11/09/How-to-make-a-web-mapping-application-with-Eclipse-ArcGIS-plug_2D00_ins.aspx</link><pubDate>Mon, 09 Nov 2009 18:58:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:9765</guid><dc:creator>dano</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/9765.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=9765</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=9765</wfw:comment><description>&lt;P&gt;In this post we will discuss how to install and set up&amp;nbsp;the ESRI Java Web ADF plug-in using &lt;A href="http://www.eclipse.org/ganymede/"&gt;Eclipse Ganymede&lt;/A&gt;. Once, we have&amp;nbsp;the plug-in installed, we&amp;nbsp;will set out&amp;nbsp;to use the features&amp;nbsp;by creating a Web Mapping Application (WMA) and extend our WMA with a Query Task functionality.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Setting Eclipse ArcGIS Preference&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Before beginning any project, it can be useful to set up common preferences for the new project wizards. Click Window &amp;gt; Preferences from the main menu in Eclipse. Select ArcGIS &amp;gt; Server from the left panel of the dialog box. The connection information entered here will be used by the project wizards. You can specify information needed to connect to some of the more commonly used servers such as ArcGIS Server, ArcIMS, and ArcGIS Web services. Each time you are prompted to add a data source, it will be automatically pre-populated with these values.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You can also check the box to Show New Project Wizard Advanced Options. This will provide a couple of extra steps in the wizard for further customization if needed. By default this is unchecked.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9780.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9780/original.aspx" border=0&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Setting up an Eclipse Server Runtime with Tomcat &lt;/B&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;In order to test and publish web applications on your application server through Eclipse, you need to define one or more resources by installing the application server and installing the appropriate server runtime in Eclipse.&amp;nbsp; Although you can set up any &lt;A href="http://wikis.esri.com/wiki/display/ag93bsr/Web+ADF+for+the+Java+Platform"&gt;supported application server&lt;/A&gt; which supports Eclipse server runtimes, in this example we will publish our WMA to &lt;A href="http://tomcat.apache.org/"&gt;Apache Tomcat&lt;/A&gt;.&amp;nbsp; Once installed, it is also important to make sure that Tomcat is set to use a 1.5.x or higher JDK.&amp;nbsp; You should check by using the Configure Tomcat shortcut from the Tomcat install to display the properties dialog below. Click the Java tab and make sure the Java Virtual Machine is set to a jvm.dll located in a 1.5.x JDK.&amp;nbsp; &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9781.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9781/original.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;More information about using Tomcat in Eclipse can be found on the &lt;A href="http://wiki.eclipse.org/WTP_Tomcat_FAQ"&gt;Eclipse wiki&lt;/A&gt;.&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;To set up Tomcat server runtime in Eclipse, there are a few simple steps:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Click Windows &amp;gt; Preferences from the Eclipse toolbar. In the Preferences dialog box, expand the Server option and select Installed Runtimes. Click the Add button.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9782.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9782/640x330.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Navigate to the appropriate Apache Tomcat server and click Next. &lt;BR&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9783.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9783/original.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Click the Browse button and locate the Tomcat installation directory on your file system. Click the Installed JREs button to add a JDK as the default JRE.&amp;nbsp; Check an appropriate JDK or click Add and browse for a JDK. Click OK to close the Preferences dialog box.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9770.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9770/original.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;The dialog box appears as follows. Click Finish. Your Tomcat Server runtime is ready to be used when creating new projects. &lt;BR&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9784.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9784/original.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;B&gt;Install ArcGIS Server for Java Web ADF plug-in&lt;/B&gt;&lt;BR&gt;This section contains instructions on how to install/update the plug-in from ESRI update center.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Select Help &amp;gt; Software Updates &amp;gt; from the Eclipse toolbar (1) if you have an ArcGIS Eclipse Plug-in installed and are upgrading.&amp;nbsp; Click the Installed Software tab, find ArcGIS Core and ArcGIS Server entry, right click on each and choose Update. Eclipse will go to the pre-defined update site to get the latest plug-ins. (2) If this is your first time installing the ArcGIS Server for Java Eclipse plug-in, click the Available Software tab, and click the Add Site button on the right.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&amp;nbsp;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9785.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9785/527x480.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Next, click the Local button to browse to the plug-in location on disk, make sure to browse to the Server folder level in your ArcGIS Server for Java directory.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9773.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9773/605x480.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;You should now see ArcGIS added to the available software list. Check ArcGIS Core and ArcGIS Server and click Install. Once installation is complete, click Finish and follow the prompt to restart Eclipse by clicking OK.&lt;BR&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;Create a new ArcGIS Web ADF project&lt;/B&gt;&lt;BR&gt;This section contains instructions for creating a new Eclipse project based on ESRI Web Project Template.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Create a new project by clicking File &amp;gt; New &amp;gt; Project and choose ESRI Web Project under ESRI Templates. Click Next and give your project a name. &lt;BR&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9774.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9774/480x480.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Make sure to choose a Target Runtime, for example, the Apache Tomcat server runtime we set up in previous steps.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9775.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9775/433x480.aspx" border=0&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;In the New ArcGIS Web Project Window, double click Add GIS Server node. &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&amp;nbsp;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9776.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9776/433x480.aspx" border=0&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Enter the server connection credentials and click OK.&amp;nbsp; This should be pre-populated with the credentials set in the preferences dialog.&amp;nbsp; &lt;BR&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&amp;nbsp;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9777.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9777/original.aspx" border=0&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Choose a service from the list and add it to the webcontext. Click Finish to complete. &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Right click the project name in the Project Explorer panel, Run As &amp;gt; Run on Server. Pick a server and hit Finish. To view the site in an external browser, go Window &amp;gt; Web Browser, choose anyone other than the Internal Web Browser.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;At this point, you should have a WMA running with all the default features offered by the plug-in.&amp;nbsp; In our next section, we will add a Query Task to the WMA and test it again. &amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&lt;B&gt;Add a query task&lt;BR&gt;&lt;/B&gt;This section contains instructions on how to add a query task to the web application.&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;In the right hand project file list, expand your project to open the mapviewer.jsp under WebContent. Once the source opens up, scroll down to the line where it says &amp;lt;a:task id="searchAttributesTask" . . .&amp;gt; (this is typically around line 123).&amp;nbsp; &lt;BR&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Place your cursor in front of this line and right click ArcGIS &amp;gt; Add Task &amp;gt; Query Attributes ...&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;&amp;nbsp;&lt;A href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture9778.aspx" target=_blank&gt;&lt;IMG src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/9778/original.aspx" border=0&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Now configure the query task. Click the Settings tab, pick a Map Service and pick a layer. Next to Query Expression, click Add. &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;In the New Expression window, pick a Field to query against and either type in the value to query or select from a list of sample values. Click OK, and OK on the Add Query Task window.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Inspect your extended mapviewer.jsp source file.&amp;nbsp; You should see the query task added and the query link added to the task menu bar.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Run the application again and test your query task.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;You now have a WMA with an extended Query Task enabled all without writing a single line of code.&amp;nbsp; The ESRI ArcGIS Server for Java plug-in hides the complexity of many features which enables you as the developer to quickly create production quality web mapping applications.&amp;nbsp; &lt;BR&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Arial','sans-serif';"&gt;Contributing Author, Li Linn, ESRI Java Development Team&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=9765" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Web+ADF/default.aspx">Web ADF</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Server/default.aspx">ArcGIS Server</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Eclipse/default.aspx">Eclipse</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/AgsJDE/default.aspx">AgsJDE</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/931/default.aspx">931</category></item><item><title>FAQs on ArcGIS Server Java Platform</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/11/06/FAQs-on-ArcGIS-Java-Platform.aspx</link><pubDate>Sat, 07 Nov 2009 01:25:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:9719</guid><dc:creator>ajoseph</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/9719.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=9719</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=9719</wfw:comment><description>&lt;p&gt;The product management team created a list of most frequently asked questions (ofcourse, along with our answers) to help our users. The list below covers a few generic questions on ArcGIS Server Java platform at 9.3.1.&lt;br&gt;&lt;/p&gt;


&lt;p class="MsoNormal"&gt;&lt;b&gt;Q: What enhancements
have been made for the ArcGIS Java Platform overall at 9.3.1?&lt;o:p&gt;
&lt;/o:p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;A: ArcGIS for the Java platform is a complete geospatial
platform for Java. It is complete from the aspect of its support at the all
levels of the GIS enterprise: From the Desktop, to embedded systems, all the way
through to the Server. Java programmers and technologists can engineer
world-class GIS solutions from Java Standard Edition (SE) applications to the
Java Enterprise Edition (EE) Applications and system integration, across all of
ESRI’s supported platforms: Windows, Linux and Solaris.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;
&amp;nbsp;Up until 9.3.1, while the ArcObjects platform was available in Java to be
consumed at all of these system tiers, customization and extensibility was not
clearly supported, and was completely unsupported for the Linux and Solaris
platforms. At 9.3.1, however, this has changed. At this release, the ArcGIS
platform can be extended by Java developers using standard Java tools and
deployment strategies. This technology allows for Java classes to be recognized
within the ArcObjects processes as true COM objects. The significance of this
technology enhancement can be described in a number of ways. Specifically,
developers of Java solutions now have more choices for performance and memory
optimization when architecting their applications. The Desktop can be extended,
as well as the in-process ArcObjects Engine applications. But most importantly,
the ArcGIS Server can now be extended to handle complex geoprocessing and data
access business logic in the server, rather than in the web tier. This allows
for huge gains in performance and scaleability for ArcGIS Server Java
applications.&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;o:p&gt;
&amp;nbsp;Q: Are the Windows, Solaris, and Linux versions of ArcGIS Server
functionally the same?&lt;o:p&gt;
&lt;/o:p&gt;
&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;A: No. At 9.3.1, there are a number of differences in
functionality between the Windows and Linux/Solaris version of ArcGIS Server.
The following table lists some of the known functionality/capability differences
between Windows, Linux and Solaris. Most (if not all) of these items have been
publicly documented in various forms throughout the on-line support resources
and software product documentation.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;
&amp;nbsp;These differences are not expected to change for 9.4.&lt;span&gt;&lt;/span&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;table class="MsoNormalTable" style="border:medium none;border-collapse:collapse;" cellpadding="0" cellspacing="0"&gt;
  &lt;tr&gt;
    &lt;td style="border:1pt solid windowtext;padding:0in 5.4pt;width:130.5pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
      &lt;p class="MsoNormal" style="text-align:center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;&lt;o:p&gt;
      &amp;nbsp;&lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:solid solid solid none;border-color:windowtext windowtext windowtext -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
      &lt;p class="MsoNormal" style="text-align:center;" align="center"&gt;&lt;b&gt;&lt;span style="font-family:'Arial','sans-serif';"&gt;Windows&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:solid solid solid none;border-color:windowtext windowtext windowtext -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
      &lt;p class="MsoNormal" style="text-align:center;" align="center"&gt;&lt;b&gt;&lt;span style="font-family:'Arial','sans-serif';"&gt;Linux&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:solid solid solid none;border-color:windowtext windowtext windowtext -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
      &lt;p class="MsoNormal" style="text-align:center;" align="center"&gt;&lt;b&gt;&lt;span style="font-family:'Arial','sans-serif';"&gt;Solaris
      9&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:solid solid solid none;border-color:windowtext windowtext windowtext -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;-moz-background-clip:-moz-initial;-moz-background-origin:-moz-initial;-moz-background-inline-policy:-moz-initial;"&gt;
      &lt;p class="MsoNormal" style="text-align:center;" align="center"&gt;&lt;b&gt;&lt;span style="font-family:'Arial','sans-serif';"&gt;Solaris
      10&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Authoring
      Map Services&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Data
      Interoperability Extension support&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Image
      Server Extension support (Server-side only) *&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No
      &lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No
      &lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Geostatistical
      Analyst Extension support&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Schematics
      Extension support&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Mobile
      services&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Direct
      Connect to Oracle&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;High-quality
      MapServer output **&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes
      &lt;/span&gt;&lt;span style="color:black;"&gt;**&lt;/span&gt;&lt;span&gt;&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Retaining
      ODBC-based table joins in MXD when moving MXD from Windows&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Retaining
      File-based table joins in MXD when moving MXD from Windows&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;Personal
      Geodatabase support&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color windowtext windowtext;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:130.5pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';"&gt;ERMapper
      ECW format support&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;Yes&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:71.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:79.7pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
    &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:80.45pt;"&gt;
      &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:red;"&gt;No&lt;o:p&gt;
      &lt;/o:p&gt;
      &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p class="MsoBodyText"&gt;&lt;span&gt;&lt;o:p&gt;
&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;* Image Server client libraries are supported on
Windows/Linux/Solaris&lt;/p&gt;
&lt;p class="MsoBodyText"&gt;** With respect to Solaris 9, there was a known
limitation with the mapserver output quality of some cartographic elements. A
patched Solaris 10 release, post June 2007, took care of the problem. There is
no workaround for Solaris 9.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;
&amp;nbsp;The Solaris version must be a release done later than June 2007 or have
the following OS patches present on the system:&lt;/o:p&gt;&lt;/p&gt;
&lt;ul style="margin-top:0in;"&gt;
  &lt;li class="MsoNormal"&gt;125100-04 Kernel Update
    Patch&lt;/li&gt;
  &lt;li class="MsoNormal"&gt;120473-05 libc nss ldap
    PAM zfs Patch&lt;/li&gt;
  &lt;li class="MsoNormal"&gt;125800-01 Fault Manager
    Patch&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoBodyText"&gt;&lt;span&gt;&lt;o:p&gt;
&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;b&gt;Q: Do you (ESRI) have any
benchmarks testing ArcGIS Server Java on Windows vs Linux?&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif';color:navy;"&gt;
&lt;o:p&gt;
&lt;/o:p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;A: Performance differences between running ArcGIS Server
for Java on Windows versus Linux have been observed. At the risk of
oversimplifying, we will share some findings: Intensive CPU operations at the
Server Object Container tier tend to be faster on Windows, due to slight
overheads produced by MainWin dependencies on our core ArcObjects components.
Operations such as sophisticated on the fly mapping and CPU intensive
geoprocessing operations incur into performance hits that can reach up to 30 or
even 40% on non Windows platforms.&amp;nbsp; Disk IO intensive operations tend to be
however faster on LINUX. For example, accessing map tiles from a cached map
service in LINUX tends to be more efficient than on Windows. The above
differences apply to the ArcGIS Server for Java and do not aim to compare
performance on the .Net and Java flavors of ArcGIS Server.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;Q: Is a mixed
platform configuration like SOM on a Linux Box and SOC(s) on a Windows box
supported with ArcGIS Server?&lt;o:p&gt;
&lt;/o:p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;A: No, neither can the reverse scenario be supported. The
reason for this is that file paths cannot be properly reconciled in
communication between a Linux SOM and a Windows SOC. For example, SOC needs to
know the absolute path for the server’s log file. The Linux SOM cannot
communicate a Linux pathname to a Windows SOC, nor the reverse.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;Q: Do you support
setting up the server in a clustered environment?&lt;o:p&gt;
&lt;/o:p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;A: Yes. ArcGIS Server is architected to support clustering,
failover and round robin. For a complete discussion, please see the following
links:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;a href="http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#guide_config_hardware.htm"&gt;http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#guide_config_hardware.htm&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;a href="http://webhelp.esri.com/arcgisserver/9.3/java/guide_config_hardware.htm"&gt;http://webhelp.esri.com/arcgisserver/9.3/java/guide_config_hardware.htm&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;span&gt;&lt;b&gt;Q:&lt;/b&gt;
&lt;b&gt;Do the Eclipse plug-ins for the Java
WebADF work with JBuilder 2008 or IBM’s RAD 7?&lt;/b&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;A: ES&lt;/span&gt;RI does
not officially support these configurations. However, our plug-ins can be used
in both IDE’s with additional configuration steps.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;i&gt;Content contributed by Eric Bader, Product Manager for ArcGIS Java platform &lt;/i&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=9719" width="1" height="1"&gt;</description></item><item><title>So long and Good-bye!</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/10/17/So-long-and-Good_2D00_bye_2100_.aspx</link><pubDate>Sat, 17 Oct 2009 20:02:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:9137</guid><dc:creator>ajoseph</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/9137.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=9137</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=9137</wfw:comment><description>&lt;p&gt;Last week &lt;a href="http://support.esri.com/" class=""&gt;ESRI Support Center&lt;/a&gt;&amp;nbsp;published a knowledge base article on the &lt;a href="http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;amp;d=37113" class=""&gt;deprecation plans for 9.3.1&lt;/a&gt;. Here is a condensed list of deprecations that might impact&amp;nbsp;Java developers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ArcGIS 9.3.1 was the last release supporting the Microsoft Windows 2000 operating system for all ArcGIS products. We will no longer support Windows 2000 in ArcGIS 9.4. &lt;/li&gt;
&lt;li&gt;ArcGIS 9.3.1 was the last release supporting Sun Solaris 9 for ArcGIS Server, ArcReader and&amp;nbsp; ArcGIS Engine. Sun has announced the end of life plans for Sun Solaris 9 and given the lack of availability in 2010, ESRI will no longer support this operating system. ArcGIS 9.4&amp;nbsp;will be&amp;nbsp;the last release supporting Sun Solaris (all versions) for ArcGIS Server, ArcReader and&amp;nbsp; ArcGIS Engine. &lt;/li&gt;
&lt;li&gt;ArcGIS 9.3.1 was the last ArcGIS Server Enterprise Java release with support for the Enterprise Application Developer Framework (EADF). EADF provided out-of-the box Enterprise Java Beans (EJBs) that were ready to use and deploy across supported J2EE 1.4 application servers. Users can still take advantage of EJBs by following patterns highlighting the ArcGIS Java Web Services Toolkit (AgsJWS) and EJB3, but we will no longer provide out-of-the box EJBs as part of a Java Application Developer Framework (ADF). &lt;/li&gt;
&lt;li&gt;ArcGIS 9.3.1 was the last release of ArcSDE for PostgreSQL on Red Hat 4; we no longer support PostgreSQL on this operating system at ArcGIS 9.4, but we will continue to support PostgreSQL on newer versions of Red Hat Linux. &lt;/li&gt;
&lt;li&gt;ArcGIS 9.3.1 was the last release with support for ArcSDE for 32-bit Informix on the AIX and Solaris platforms; we will no longer support these in ArcGIS 9.4 due to limited support from IBM for these platforms. &lt;/li&gt;
&lt;li&gt;ArcGIS 9.3.1 was the last release of ArcSDE for Microsoft SQL Server 2000. We no longer support SQL Server 2000 in ArcGIS 9.4 due to this platform no longer being actively supported by Microsoft. &lt;/li&gt;
&lt;li&gt;ArcGIS 9.3.1 was the last release to support Internet Explorer 6 (IE6); we will no longer support this browser with the release after ArcGIS 9.3.1. Microsoft will be two releases ahead of IE6 by the time ArcGIS 9.4 is available, and IE6 is no longer being actively maintained by Microsoft. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Please refer the &lt;a href="http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&amp;amp;d=37113" class=""&gt;Knowledge Base Article&lt;/a&gt; for more information on the deprecation plans and please plan ahead for migration.&lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=9137" width="1" height="1"&gt;</description></item><item><title>Configuring the JVM for Use with your ArcGIS Java Extensions</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/10/07/Configuring-the-JVM-for-Use-with-your-ArcGIS-Java-Extensions.aspx</link><pubDate>Wed, 07 Oct 2009 16:54:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:8891</guid><dc:creator>eric906</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/8891.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=8891</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=8891</wfw:comment><description>&lt;p&gt;The 9.3.1 release of ArcGIS introduces the ability to extend ArcGIS using Java. In addition to supporting automatic registration and hosting of Java extensions in ArcGIS applications, a UI-based &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/5ea8aa1a-0b3e-46c1-8589-757bdc50d4d1.htm"&gt;JVM Config tool&lt;/a&gt; for configuring the environment for the extensions is also provided. Using this tool, users can configure JVM options for running their extensions and other options for troubleshooting purposes.&lt;/p&gt;
&lt;p&gt;Due to the UI nature of this tool, however, users need to explicitly interact with it to apply configuration settings on a computer. This may not be suitable for installer programs / setup scripts that want to apply these settings in a silent fashion. Such programs can instead create a Windows Registration file (.REG file) containing these settings and import it into the Windows registry.&lt;/p&gt;
&lt;p&gt;.REG files are text-based human-readable files for storing portions of the registry. For general instructions on working with .REG files to add / modify / delete registry keys refer to the following Microsoft KB article: &lt;a href="http://support.microsoft.com/kb/310516"&gt;http://support.microsoft.com/kb/310516&lt;/a&gt;. This document will provide examples of how to write Java configuration settings into a .REG file and importing it into the Windows registry.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Example 1:&lt;/b&gt; Choosing the default JVM and setting remote debugging ports.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;JavaConfigTool:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture8892.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/8892/367x390.aspx" border="0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Consolas"&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture8894.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/8894/original.aspx" border="0"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Example 2:&lt;/b&gt; Choosing the default JVM and enabling Java Interop Logging&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture8895.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/8895/original.aspx" border="0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/picture8896.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/8896/original.aspx" border="0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Importing a .REG file into the Registry:&lt;br&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Windows: c:\&amp;gt;regedit.exe /s &amp;lt;filename.reg&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;UNIX: bash3.2$ regedit –c &amp;lt;filename.reg&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;Note that the regedit tool on UNIX is available only with ArcGIS products and the necessary initialization scripts for those products (ArcGIS Engine / ArcGIS Server) need to be run before invoking the regedit tool.&lt;/p&gt;Credits:

&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Ranjit Iyer, Lead Developer and Ajit Dharmik, Lead Product Engineer of the ArcGIS Java development team contributed this post.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=8891" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcObjects/default.aspx">ArcObjects</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/JVMConfigTool/default.aspx">JVMConfigTool</category></item><item><title>AgsJWS 9.3.1 Developer Dependencies</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/09/10/AgsJWS-Developer-Dependencies.aspx</link><pubDate>Thu, 10 Sep 2009 20:15:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:8264</guid><dc:creator>dano</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/8264.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=8264</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=8264</wfw:comment><description>&lt;p&gt;The ArcGIS Java WebServices (AgsJWS) libraries are included with the ArcGIS Java Web ADF.&amp;nbsp; With version 9.3.1, the Web ADF libraries are located under '$ARCGISHOME/java/web/webcontrols/WEB-INF/lib'.&amp;nbsp; The ESRI AgsJWS libaries include the following: &lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;arcgis_agsws_stubs.jar&lt;/li&gt;&lt;li&gt;arcgis_ws_runtime.jar&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The dependency libraries are in the same location on disk and included the following: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;activation.jar&lt;/li&gt;&lt;li&gt;commons-codec-1.3.jar&lt;/li&gt;&lt;li&gt;commons-httpclient-3.0.1.jar&lt;/li&gt;&lt;li&gt;commons-logging-1.0.4.jar&lt;/li&gt;&lt;li&gt;jaxb-api.jar&lt;/li&gt;&lt;li&gt;jaxb-impl.jar&lt;/li&gt;&lt;li&gt;jsr173_1.0_api.jar &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You can create User Libraries in NetBeans and Eclipse to accelerate development with the AgsJWS API.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;b&gt;NetBeans v6.5.1&lt;br&gt;&lt;/b&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;From the tools menu, select Libraries to open the Library Manager.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Click the 'New Library...' button to create a new Library and name it 'AgsJWSv9.3.1'.&lt;/li&gt;&lt;li&gt;Select a Library Type&lt;/li&gt;&lt;li&gt;You should see your library added to the Library Type you selected in the previous step. &lt;br&gt;&lt;/li&gt;&lt;li&gt;With your new 'AgsJWSv9.3.1' library selected in the left hand Libraries pane, click the 'Add JAR/Folder' button.&lt;/li&gt;&lt;li&gt;Navigate to the '$ARCGISHOME/java/web/webcontrols/WEB-INF/lib' folder location.&lt;/li&gt;&lt;li&gt;Select the ESRI AgsJWS libraries and dependency libraries described above and click 'Add JAR/Folder'.&lt;/li&gt;&lt;li&gt;Once you have all the libraries selected, click OK to close out of the dialog.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;Now when you can add the library to an existing project by right clicking the project and selecting 'Properties'.&amp;nbsp; The Project Properties dialog opens where you can select Libraries from the list of Categories and click the 'Add Library' button to find the appropriate library to add.&amp;nbsp; &lt;p&gt;&lt;b&gt;Eclipse Ganymede (v3.4.x) &lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;From the Windows menu, select Preferences. &lt;br&gt;&lt;/li&gt;&lt;li&gt;Select Java &amp;gt; Build Path &amp;gt; User Libraries from the left hand pane.&lt;/li&gt;&lt;li&gt;Click the 'New' button to create a new Library and name it 'AgsJWSv9.3.1'.&lt;/li&gt;&lt;li&gt;With your new library selected, click the 'Add Jars' button to open the Jar Selection dialog. &lt;br&gt;&lt;/li&gt;&lt;li&gt;Navigate to the '$ARCGISHOME/java/web/webcontrols/WEB-INF/lib' folder location.&lt;/li&gt;&lt;li&gt;Select the ESRI AgsJWS libraries and dependency libraries described above and click 'Open'.&lt;/li&gt;&lt;li&gt;You should now see all the libraries added with options to attach source and javadoc locations.&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;Now you can add the library to a new project or existing project by clicking the 'Add Library' in the New Project dialog and/or the Project Preferences dialog respectively.&amp;nbsp; In Eclipse, your library is added to the 'User Library' category by default.&amp;nbsp; Once you select User Library, you can add the appropriate library to your project.&amp;nbsp; &lt;br&gt;&lt;p&gt;For further reference please review the follow Help System topics:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/ce11942d-cfe6-4501-892d-f3896f943c54.htm" title="Web ADF Runtime Files" target="_blank"&gt;Java WebADF Runtime Files and Components&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/b68e0bbb-93ca-4eb1-84ff-0117b61ae6ce.htm" title="Java Web Services " target="_blank"&gt;Web services, SOAP, and WSDL&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=8264" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Web+ADF/default.aspx">Web ADF</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Eclipse/default.aspx">Eclipse</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/AgsJWS/default.aspx">AgsJWS</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/NetBeans/default.aspx">NetBeans</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/931/default.aspx">931</category></item><item><title>Custom Task to consume SOE</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/09/06/Custom-Task-to-consume-SOE.aspx</link><pubDate>Mon, 07 Sep 2009 00:00:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:8176</guid><dc:creator>dano</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/8176.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=8176</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=8176</wfw:comment><description>
&lt;p&gt;At 9.3.1, we introduced Server Object Extensions (SOE) in Java.&amp;nbsp; Java SOE's offer developers an opportunity to encapsulate low level GIS functionality in desktop or web applications.&amp;nbsp; In the ArcGIS Server Java Development Help System we &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/a7d7bcc2-3f47-4c91-853a-51c62f08b330.htm" title="JHS Consuming SOE Topic"&gt;document two approaches to consuming SOE's in a console application and in a web application&lt;/a&gt;.&amp;nbsp; In our web application approach, we document using a Java Server Faces (JSF) managed bean pattern where the business logic, SOE, is applied to a command button component in an action listener.&amp;nbsp; This pattern does not directly depend on the Java Web ADF, but it can be used to extend a Web ADF application.&amp;nbsp; To take advantage of patterns the Java Web ADF offers, we will take a look at extending the Java Web ADF Task Framework to consume a SOE using the &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/fbfa0b82-9c91-46eb-b73a-2dcb8c68515f.htm" title="JHS SOE WalkThrough topic"&gt;Hello World SOE Developer walkthrough&lt;/a&gt;.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&amp;nbsp;The Web ADF Task Framework is an extensible architecture where you can integrate and deploy custom functionality as "Web tasks" within a Web ADF application.&amp;nbsp; Creating a Custom Java Web ADF Task that consumes an SOE involves the following steps once you have successfully deployed the &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/fbfa0b82-9c91-46eb-b73a-2dcb8c68515f.htm" title="JHS SOE WalkThrough Topic"&gt;Hello World SOE&lt;/a&gt;:&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Include the SOE jar File in your Web ADF libraries&lt;/li&gt;

&lt;li&gt;Create a Java Task Class to consume the SOE&lt;br&gt;&lt;/li&gt;

&lt;li&gt;Register the Class as a Managed Bean&lt;/li&gt;

&lt;li&gt;Add the task control to the JSP page with a reference to the managed bean&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;b&gt;Include SOE Jar File&lt;/b&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Copy the HelloWorldSOE jar file into the WEB-INF\lib folder of your Web ADF application so that you have local access to the SOE business object in your WEB ADF application.&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;b&gt;Create a Java Class to consume the SOE&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;To work with our HelloWorld SOE, we will want to create a command, or action, task and send the return to the Results panel.&amp;nbsp; Commands allow you to execute business logic in your SOE without any user interaction with the map.&amp;nbsp; To create a Web ADF Task, you can either manually create a Java class file and associated TaskInfo classes or use a supported developer IDE like Eclipse to stub out all your Task Class artifacts.&amp;nbsp; Once you have your Task Class created, implement the following method:&amp;nbsp; &lt;/p&gt;

&lt;code&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;void &lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;getMessage&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;TaskEvent&amp;nbsp;event&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;.getClass&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;.getName&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;":getMessage()"&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;try&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Get&amp;nbsp;a&amp;nbsp;handle&amp;nbsp;to&amp;nbsp;the&amp;nbsp;Local&amp;nbsp;ArcGIS&amp;nbsp;Service&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;AGSLocalMapResource&amp;nbsp;resource&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;AGSLocalMapResource&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;event.getWebContext&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#000000"&gt;.getResources&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;.get&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"ags1"&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Get&amp;nbsp;a&amp;nbsp;handle&amp;nbsp;to&amp;nbsp;the&amp;nbsp;SOE&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;IServerObject&amp;nbsp;so&amp;nbsp;=&amp;nbsp;resource.getServerContext&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;.getServerObject&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;IServerObjectExtension&amp;nbsp;soe&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;((&lt;/font&gt;&lt;font color="#000000"&gt;IServerObjectExtensionManager&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;so)&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#000000"&gt;.findExtensionByTypeName&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"HelloWorldSOE"&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;IHelloWorldSOE&amp;nbsp;hwSoe&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;IHelloWorldSOE&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;soe;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Invoke&amp;nbsp;the&amp;nbsp;HelloWorld&amp;nbsp;SOE&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;soeReturn&amp;nbsp;=&amp;nbsp;hwSoe.helloWorld&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Add&amp;nbsp;attributes&amp;nbsp;to&amp;nbsp;a&amp;nbsp;list&amp;nbsp;to&amp;nbsp;send&amp;nbsp;to&amp;nbsp;WebResults&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;List&amp;lt;String&amp;gt;&amp;nbsp;values&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ArrayList&amp;lt;String&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;id&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;""&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;System.currentTimeMillis&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;values.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;id&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Unique&amp;nbsp;identifier&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;values.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;soeReturn&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;SOE&amp;nbsp;Message&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Add&amp;nbsp;a&amp;nbsp;List&amp;nbsp;of&amp;nbsp;results&amp;nbsp;to&amp;nbsp;the&amp;nbsp;WebResults&amp;nbsp;object&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;WebContext&amp;nbsp;context&amp;nbsp;=&amp;nbsp;event.getWebContext&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;WebResults&amp;nbsp;results&amp;nbsp;=&amp;nbsp;context.getWebResults&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;results.addResults&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;"SOE&amp;nbsp;Message"&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;&amp;nbsp;values&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;catch&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;Exception&amp;nbsp;e&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;e.printStackTrace&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/code&gt;

&lt;p&gt;&lt;font color="#000000"&gt;Let's explain the method code above.&amp;nbsp; First we need to get a handle to the Map Service which the SOE is enabled on.&amp;nbsp; In the WebADF, we can get this from the named resource in our faces-config file.&amp;nbsp; In our case the resource is named 'ags1' and we use a Local Connection to cast to.&amp;nbsp; Once we have the Map Service, we can get access to the associated Server Object and we can gain access to extensions with the method &lt;span style="font-style:italic;"&gt;findExtensionbyTypeName( &amp;lt;soename&amp;gt; )&lt;/span&gt;.&amp;nbsp; The return object from this method call can be collected by &lt;span style="font-style:italic;"&gt;IServerObjectExtension&lt;/span&gt; and this reference can be used to call a method on the SOE. At this point in our simple example, we just want to display the return from our SOE in our application.&amp;nbsp; We can easily use the WebADF Results Panel to post the return message.&amp;nbsp; The &lt;i&gt;WebResults&lt;/i&gt; object is maintained by the &lt;i&gt;WebContext&lt;/i&gt; and can be accessed via the &lt;i&gt;WebContext.getWebResults()&lt;/i&gt; method.&amp;nbsp; The result objects that you add to WebResults can provide up to 4 types of information.&amp;nbsp; We will use the &lt;i&gt;addResults()&lt;/i&gt; method to add a Results Header and the result data supplied as a &lt;i&gt;java.util.List&lt;/i&gt; object.&amp;nbsp; That is all the code required to access our SOE and send the response to the Results Panel.&amp;nbsp; We take advantage of the simplicity of both the SOE and the Web ADF Framework in this pattern.&amp;nbsp; &lt;br&gt;&lt;/font&gt;

&lt;/p&gt;&lt;p&gt;&lt;b&gt;Register the Class as a Managed Bean&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;When your Task code is complete, you need to register it as a managed bean. If you used a supported developer IDE, the Task template process created these entries for you.&amp;nbsp; If not, you can manually do this by opening the faces-config.xml file in your WEB-INF folder and scroll down toward the end of the file and append the following tag content below the last managed bean.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;
&lt;code&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;managed-bean&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;managed-bean-name&amp;gt;helloWorldSvc&amp;lt;/managed-bean-name&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;managed-bean-&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;sample.soe.task.HelloWorldSvc&amp;lt;/managed-bean-&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;managed-bean-scope&amp;gt;none&amp;lt;/managed-bean-scope&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;/managed-bean&amp;gt;&lt;/font&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And add the following as a map-entry under the root mapContext managed bean: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;map-entry&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;key&amp;gt;helloWorldSvc&amp;lt;/key&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;value&amp;gt;#{helloWorldSvc}&amp;lt;/value&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/map-entry&amp;gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Add the task control to the JSP page with a reference to the managed bean&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The final step in the process is to add the task control and link to your jsp page.&amp;nbsp; Open your mapviewer.jsp file and add the new task control to the list of tasks in your application.&amp;nbsp; The task tags are typically toward the bottom of the mapviewer.jsp file in the WMA.&amp;nbsp; Note, our task control assumes an associated TaskInfo class was created and links it appropriately here.&amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;!--&amp;nbsp;New&amp;nbsp;SOE&amp;nbsp;Task&amp;nbsp;Tag&amp;nbsp;in&amp;nbsp;the&amp;nbsp;JSP&amp;nbsp;File&amp;nbsp;--&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;a:task&amp;nbsp;id=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"helloWorldTask"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;value=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"#{mapContext.attributes.helloWorldSvc}" &lt;/font&gt;&lt;/code&gt;&lt;code&gt;&lt;font color="#000000"&gt;taskInfo=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"#{mapContext.attributes.helloWorldSvc.taskInfo}"&lt;/font&gt;&lt;/code&gt;&lt;code&gt;&lt;font color="#2a00ff"&gt; &lt;/font&gt;&lt;font color="#000000"&gt;mapId=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"map1"&lt;/font&gt;&lt;font color="#2a00ff"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;&lt;/font&gt;&lt;font color="#000000"&gt;/&amp;gt;&lt;/font&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now add a task link to the 'task-menu'.&amp;nbsp; In your WMA mapviewer.jsp file you will see this &amp;lt;div&amp;gt; tag content holding the applications Search Attributes task.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;li&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"menu-bar"&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;a&amp;nbsp;href=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"#"&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"menu-header"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;title=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"SOE&amp;nbsp;Task"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;onclick=&lt;/font&gt;&lt;font color="#2a00ff"&gt;"toggleWindow('win_EsriTaskCell_helloWorldTask');"&lt;/font&gt;&lt;font color="#000000"&gt;&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;span&amp;gt;Hello World SOE&amp;lt;/span&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;/a&amp;gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;/li&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;b&gt;Run your application&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;You nave now completed the steps to implement your custom task which consumes the HelloWorld SOE.&amp;nbsp; You can now deploy and run your application to see it work.&amp;nbsp; Once the application loads, you should see your 'Hello World SOE' link at the top of the Task Menu bar.&amp;nbsp; When executed the results are sent to the Results Panel as shown below:&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/original/SOETask.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/8192/309x248.aspx" border="0"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="font-weight:bold;"&gt;Consume your SOE in the Web ADF Task Framework &lt;/p&gt;
&lt;p&gt;The Web ADF Task framework offers vast flexibility for you to consume your SOE's in your web application.&amp;nbsp; The framework provides a mechanism that lets you focus on working with SOE's instead of being concerned with low level implementations in your web application.&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=8176" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Frameworks/default.aspx">Frameworks</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Web+ADF/default.aspx">Web ADF</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Server/default.aspx">ArcGIS Server</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/SOE/default.aspx">SOE</category></item><item><title>ArcObjects Java, Swing/AWT.....but what about SWT?</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/08/10/SWING_2F00_AWT_2E002E002E002E002E00_and-then-there-is-SWT.aspx</link><pubDate>Mon, 10 Aug 2009 19:06:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:7481</guid><dc:creator>eric906</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/7481.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=7481</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=7481</wfw:comment><description>&lt;P&gt;I like &lt;A class="" title=Swing href="http://java.sun.com/docs/books/tutorial/uiswing/start/index.html" target=_blank&gt;Swing&lt;/A&gt; a lot. Am I a rationally-thinking programmer? Ha! No. But I like Swing for a number of my own reasons. Let me share:&lt;/P&gt;
&lt;P&gt;1. Swing is guaranteed to run on any JVM. No special installations or special JVMs. &lt;/P&gt;
&lt;P&gt;2. Swing is rich with so many components and events, richer than AWT. Uh, do I understand ALL of the models and events and patterns here? No.&lt;/P&gt;
&lt;P&gt;3. The tooling for Swing is terrific. Eclipse and Netbeans both have great tools for Swing development. I like tools. I need tools.&lt;/P&gt;
&lt;P&gt;4. Swing&amp;nbsp;is "top-to-bottom" and&amp;nbsp;"bottom-to-top": I don't need to create a JPanel or JFrame&amp;nbsp;before creating a JButton, or visa versa.&lt;/P&gt;
&lt;P&gt;I do understand that there are drawbacks to using Swing as well. For starters:&lt;/P&gt;
&lt;P&gt;1. Swing applications with heavy UIs may run a bit slow on certain platforms.&lt;/P&gt;
&lt;P&gt;2. Swing look and feel may not always be consistent across all platforms&lt;/P&gt;
&lt;P&gt;3. more....&lt;/P&gt;
&lt;P&gt;&lt;A class="" title=SWT href="http://wiki.eclipse.org/FAQ_What_is_SWT%3F"&gt;SWT&lt;/A&gt; (The Standard Widget Toolkit) is a different beast when it comes to building UI-rich cross platform applications for the desktop. It is also a strong platform for doing what Swing and AWT do as windowing toolkits, but tries to fill the voids that Swing and AWT leave us with.&lt;/P&gt;
&lt;P&gt;1. Swing and AWT do not render "native" widget components. SWT&amp;nbsp;does use&amp;nbsp;native widgets for a natural "look and feel"&lt;/P&gt;
&lt;P&gt;2. Because Swing/AWT to not use the native widgets found on different platforms, the abstraction can cost you in performance. SWT is more native, and can perform better, as it provides the thinest possible widget support, natively, for the widest range of platforms. But care must be take when developing for&amp;nbsp;specific platforms.&lt;/P&gt;
&lt;P&gt;There are many compelling reasons for organizations to choose the RCP/SWT/Eclipse platform for their application development and maintenence environments.&lt;/P&gt;
&lt;P&gt;OK. We have some&amp;nbsp;development choices and options out there for rich Java Desktop applications. Excellent. But here is some harsh reality: &lt;U&gt;&lt;STRONG&gt;SWT and AWT do not mix&lt;/STRONG&gt;&lt;/U&gt;. Can SWT and AWT widgets co-exist in the same application? Not very well, but it can be accomplished with a little help from the SWT-AWT bridge and some complex development approaches. &lt;A class="" href="http://www.eclipse.org/articles/article.php?file=Article-Swing-SWT-Integration/index.html"&gt;Here&lt;/A&gt; is an interesting article that goes into depth on this topic, outlining the pitfals and angst that can be experienced in trying this.&lt;/P&gt;
&lt;P&gt;So, what does this mean for ArcGIS Engine Java developers? The high-level UI developer components&amp;nbsp;that ship with the Java SDK for ArcGIS Engine are based on AWT. Period.&amp;nbsp;These components have never been successfully tested in SWT or "mixed" application development environments.&lt;/P&gt;
&lt;P&gt;What I&amp;nbsp;strongly encourage Java Engine developers to do is&amp;nbsp;this: avoid trying to mix SWT with ArcGIS Engine application development at all costs. At the current release, this usage will not be supported. ESRI will look into this for possible consideration later on, but at the present time, please don't go there!&lt;/P&gt;
&lt;P&gt;So, have fun on the Swing-set, and don't hurt yourself!&lt;/P&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=7481" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/SWT/default.aspx">SWT</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Swing/default.aspx">Swing</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/AWT/default.aspx">AWT</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Engine/default.aspx">ArcGIS Engine</category></item><item><title>Extending ArcGIS with Java</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/08/07/Extending-ArcGIS-with-Java.aspx</link><pubDate>Sat, 08 Aug 2009 02:54:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:7437</guid><dc:creator>ajoseph</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/7437.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=7437</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=7437</wfw:comment><description>&lt;p&gt;&lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/80146cac-6b50-4c82-a9f5-7a5be3406c5b.htm"&gt;Extending ArcGIS&lt;/a&gt; is one of the most important features that
was released at 9.3.1. We tried hard to extensively document this new feature
and you will find most of the information in the help topics. So, I have jotted down some quick notes to get you started:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The ability to extend ArcGIS using &lt;a href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object"&gt; POJOs&lt;/a&gt; was introduced at 9.3.1. But, what does that mean? It means that you can add new custom functionality to ArcGIS applications using POJOs.  How can you, the ArcGIS Engine/Server/Desktop/Geodatabase developer take advantage of ‘Extending ArcGIS’ feature?&lt;/p&gt;
&lt;p&gt; An ArcGIS Desktop developer can&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create &lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/7894e53d-6fff-4459-9d53-233f172653b2.htm"&gt; custom Geoprocessing tools&lt;/a&gt; to accomplish specific GIS tasks. You can add the custom tool to any toolbox in ArcToolbox or chain it with other Geoprocessing tools in ModelBuilder. Since the custom Geoprocessing tool is built using POJOs, you can easily leverage external Java libraries in your tool to perform GIS tasks.&lt;/li&gt;
  &lt;li&gt;Create &lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/7894e53d-6fff-4459-9d53-233f172653b2.htm"&gt; custom
    Feature renderers&lt;/a&gt; and access it through Desktop UI dialogs like other in-built feature renderers in ArcMap. Feature renderers allow you to symbolize the point/line/polygon data in a map. You can create your own renderers to symbolize the geometries specific to your data&amp;nbsp;&lt;/li&gt;
  &lt;li&gt;Create &lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/6ff1b081-7713-4ae6-bdaa-883b196eac34.htm"&gt;Plug-in data sources&lt;/a&gt; to integrate external data formats with ArcGIS and hence manage them through ArcCatalog or add them as a layer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An ArcGIS Server developer can&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create and publish custom Geoprocessing tool through the ArcGIS Server.&lt;/li&gt;
  &lt;li&gt;Create &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/bf5a4aaf-f197-42cb-935a-c120b349657c.htm"&gt; Server Object Extensions&lt;/a&gt;
    and &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/e03ac3a9-aad2-4d20-83c7-53ef9f800460.htm"&gt;Utility
    objects&lt;/a&gt; to improve the performance of web mapping applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An ArcGIS Engine Developer can&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create custom feature renderers that can be accessed and persisted to MXD documents programmatically.&lt;/li&gt;
  &lt;li&gt;Create and consume custom Geoprocessing tools through Geoprocessing APIs in their application.&lt;/li&gt;
  &lt;li&gt;Create plug-in data sources to integrate external data formats not supported by ArcGIS and access them programmatically using Geodatabase APIs in their applications.&amp;nbsp;&lt;/li&gt;
  &lt;li&gt;Create Utility objects to improve the performance of applications built
    using ArcObjects Java API (a.k.a. ArcGIS Engine applications)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A Geodatabase developer can&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create &lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/b2cbf563-56f0-4a2b-b97b-0212e9e0553f.htm"&gt;Class extensions&lt;/a&gt; to define data behavior in a geodatabase. Translation- you can define rules, alerts and actions that are triggered on data creation, modification and deletion.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You must also bear in mind; the ‘Extending ArcGIS’ using POJOs is limited to creating Geoprocessing Tools, Feature Renderers, Class Extensions, Plug-in Data Sources and the most famous Server Object Extensions only.
We have authored a short video on ‘&lt;a href="http://resources.esri.com/arcgisengine/java/index.cfm?fa=mediaGalleryDetails&amp;amp;mediaID=A94ACBED-1422-2418-A081D5D3B311087C"&gt;Extending
ArcGIS&lt;/a&gt;’ and have posted it to the &lt;a href="http://resources.esri.com/arcgisengine/java/index.cfm?fa=mediaGallery"&gt; ArcGIS Developer Media
Gallery&lt;/a&gt;. In the video, Jim presents a very simple and straight forward introduction to ‘Extending ArcGIS’.  By the way, the ability to extend ArcGIS, was available well at 9.0. However, the extensibility workflow was tedious - you must write C++ code using ArcObjects C++ APIs, generate proxies using Proxygen tool and access these proxies in your Java code to add custom functionality. But
now at 9.3.1, we have made the &lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/cfcbbfa3-4a45-4469-bdc4-486c0d81f9ca.htm"&gt;Java-Interop&lt;/a&gt; much smarter and it is possible to extend ArcGIS by creating POJOs and deploying them to
ArcGIS. &lt;/p&gt;&lt;p&gt;Our developers went back to the whiteboard several times to simplify the development/deployment workflow and present a native Java development experience. The development workflow is to create a POJO that implements specific ArcObjects interfaces and annotated with @ArcGISExtension annotation appropriately. The deployment workflow is even simpler, you must bundle the POJOs into a JAR file and drop them in %ArcGISHome%/java/lib/ext folder and when you launch the ArcGIS applications next time, the extensibility will be available for you to consume.&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://resources.esri.com/java/index.cfm?fa=help"&gt; help topics&lt;/a&gt; and samples are hosted on the resource center under Extending ArcGIS SDK. You can also watch the
&lt;a href="http://www.esri.com/devsummit"&gt; DevSummit 2009&lt;/a&gt; tech workshop videos on
&lt;a href="http://resources.esri.com/arcgisserver/adf/java/index.cfm?fa=mediaGalleryDetails&amp;amp;mediaID=7C54D6EF-1422-2418-A0716CD38AC2598E"&gt; Extending ArcGIS with Java&lt;/a&gt; and
&lt;a href="http://resources.esri.com/arcgisserver/adf/java/index.cfm?fa=mediaGalleryDetails&amp;amp;mediaID=7C5BA973-1422-2418-A013606E2BC2A0CE"&gt; Extending ArcGIS Server with
Java&lt;/a&gt;. You can also read &lt;a href="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/06/11/SOE-Patterns.aspx"&gt;Dan's&lt;/a&gt; and &lt;a href="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/05/28/SOE-_2D00_What_2700_s-new.aspx"&gt;David's&lt;/a&gt; Server Object Extension blogs.&lt;br&gt;
&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=7437" width="1" height="1"&gt;</description></item><item><title>Creating an AgsJWS web application with Wicket Framework</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/07/31/Creating-an-AgsJWS-web-application-with-Wicket-Framework.aspx</link><pubDate>Fri, 31 Jul 2009 18:55:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:7317</guid><dc:creator>dano</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/7317.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=7317</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=7317</wfw:comment><description>&lt;p&gt;Let's build our first AgsJWS web application.&amp;nbsp; The AgsJWS API is a low level API for working with ArcGIS Server Web Services through published WSDL endpoint URL's.&amp;nbsp; This makes the API easy to integrate into existing frameworks which simplifies web application development.&amp;nbsp; POJO data models make good sense when working with low level API's and Apache Wicket provides a good POJO framework which makes developing web applications simple and enjoyable.&amp;nbsp; While this post will assume some knowledge of the &lt;a href="http://wicket.apache.org/" title="Apache Wicket" target="_blank"&gt;Apache Wicket&lt;/a&gt; framework, if you are new to the framework you can read more about it &lt;a href="http://wicket.apache.org/introduction.html" title="Wicket Introduction" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;Our application is going to extend on our previous &lt;a href="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/07/23/Using-ArcGIS-Java-WebServices-API.aspx" title="AgsJWS Original Post"&gt;post&lt;/a&gt; which described a console based application for displaying all services from an ArcGIS Server Service Directory.&amp;nbsp; In this post, we will turn that application into a web application using the Apache Wicket framework.&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;In our example, we will put all the of the files in the same package directory.&amp;nbsp; This means that our markup files and java files will be in the same directory next to one another.&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&lt;b&gt;CatalogServerApplication.java&lt;/b&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Each Wicket application is defined by an Application object.&amp;nbsp; The object defines the home page and allows for some configuration.&amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;code&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;com.esri.agsjws.demo;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.wicket.protocol.http.WebApplication;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServerApplication&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;WebApplication&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#646464"&gt;@Override&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Class&amp;nbsp;getHomePage&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;TODO&amp;nbsp;Auto-generated&amp;nbsp;method&amp;nbsp;stub&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServer.&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/code&gt;

&lt;p&gt;&lt;b&gt;CatalogServer.java &lt;/b&gt;&lt;/p&gt;&lt;p&gt;In our Application object, &lt;i&gt;CatalogServerApplication&lt;/i&gt;, we defined the &lt;i&gt;CatalogServer&lt;/i&gt; to be our home page.&amp;nbsp; When the base URL of our application is requested, the markup rendered by the &lt;i&gt;CatalogServer&lt;/i&gt; page will be returned.&amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;code&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;package&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;com.esri.agsjws.demo;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.wicket.AttributeModifier;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.wicket.markup.html.WebMarkupContainer;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.wicket.markup.html.WebPage;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.wicket.markup.html.basic.Label;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.wicket.markup.repeater.RepeatingView;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;org.apache.wicket.model.AbstractReadOnlyModel;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;com.esri.arcgisws.ServiceCatalogBindingStub;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;import&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;com.esri.arcgisws.ServiceDescription;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServer&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;extends&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;WebPage&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Constructor&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServer&lt;/font&gt;&lt;font color="#000000"&gt;(){&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Get&amp;nbsp;Version&amp;nbsp;Info&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&amp;nbsp;catalog&amp;nbsp;=&amp;nbsp;getCatalog&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;endpointURL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;version&amp;nbsp;=&amp;nbsp;catalog.getMessageVersion&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;.toString&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Label&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"version"&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;version&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Label&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"server"&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;endpointURL&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;RepeatingView&amp;nbsp;repeating&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;RepeatingView&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;"repeating"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;repeating&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Get&amp;nbsp;Service&amp;nbsp;Info&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceDescription&lt;/font&gt;&lt;font color="#000000"&gt;[]&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;sds&amp;nbsp;=&amp;nbsp;getServiceDesription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;catalog&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;i&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;sds.length;&amp;nbsp;i++&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;WebMarkupContainer&amp;nbsp;item&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;WebMarkupContainer&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;repeating.newChildId&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;repeating.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;item&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceDescription&amp;nbsp;sd&amp;nbsp;=&amp;nbsp;sds&lt;/font&gt;&lt;font color="#000000"&gt;[&lt;/font&gt;&lt;font color="#000000"&gt;i&lt;/font&gt;&lt;font color="#000000"&gt;]&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;item.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Label&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"ServiceName"&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;sd.getName&lt;/font&gt;&lt;font color="#000000"&gt;()))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;item.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Label&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"ServiceCapabilities"&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;sd.getCapabilities&lt;/font&gt;&lt;font color="#000000"&gt;()))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;item.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Label&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"ServiceType"&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;sd.getType&lt;/font&gt;&lt;font color="#000000"&gt;()))&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;final&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;idx&amp;nbsp;=&amp;nbsp;i;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;item.add&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;AttributeModifier&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"class"&lt;/font&gt;&lt;font color="#000000"&gt;,&amp;nbsp;true,&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;AbstractReadOnlyModel&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Object&amp;nbsp;getObject&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;idx&amp;nbsp;%&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;2&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;==&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;?&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;"even"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;:&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;"odd"&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}))&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&amp;nbsp;getCatalog&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;URL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;){&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;URL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceDescription&lt;/font&gt;&lt;font color="#000000"&gt;[]&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;getServiceDesription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&amp;nbsp;catalog&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;){&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;catalog.getServiceDescriptions&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;endpointURL&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;"http://server.arcgisonline.com/arcgis/services"&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;
&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;
&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/code&gt;

&lt;p&gt;Here we integrate the console based &lt;i&gt;CatalogServer&lt;/i&gt; class but instead of printing out to the console we are going to return our output to Wicket components to be rendered by a markup page.&amp;nbsp; First we print version and server url to &lt;i&gt;Label&lt;/i&gt;s which take two parameters.&amp;nbsp; The first parameter is the component identifier and the second parameter is the message which the label should render.&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;Next we need to iterate through our &lt;i&gt;ServiceDescription&lt;/i&gt; and print them out in tabular form.&amp;nbsp; For this we use a &lt;i&gt;WebMarkupContainer&lt;/i&gt; which allows us to dynamically add rows filled with &lt;i&gt;Label&lt;/i&gt;s which we will populate with our Service Name, Capabilities, and Service Types.&amp;nbsp; I added a modifier to render alternating row colors for viewer clarity.&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&lt;b&gt;CatalogServer.html&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The HTML that defines our &lt;i&gt;CatalogServer&lt;/i&gt; functionality has two obvious points to discuss&lt;br&gt;1. The wicket component declaration in form of &amp;lt;span wicket:id="server" id="endpointURL"&amp;gt;&lt;br&gt;2. The message [endpointURL]&lt;br&gt;&lt;br&gt;The component declaration is the Wicket identifier and the component identifier message.&amp;nbsp; The component identifier is the same as the name of the component defined as our &lt;i&gt;WebPage&lt;/i&gt;, the &lt;i&gt;CatalogServer&lt;/i&gt; class.&amp;nbsp; The text in between the &amp;lt;span&amp;gt; tags gets removed when the component renders its message.&amp;nbsp; The content which is rendered is determined by the &lt;i&gt;CatalogServer&lt;/i&gt; class.&lt;/p&gt;&lt;p&gt;&lt;b&gt;web.xml &lt;/b&gt;&lt;/p&gt;&lt;p&gt;In order to deploy our web application we need to make it known to the application server through the standard web.xml file.&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;CatalogServerApplication&amp;lt;/filter-name&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-class&amp;gt;org.apache.wicket.protocol.http.WicketFilter&amp;lt;/filter-class&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;init-param&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;applicationClassName&amp;lt;/param-name&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;com.esri.agsjws.demo.CatalogServerApplication&amp;lt;/param-value&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/init-param&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filter&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-mapping&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;CatalogServerApplication&amp;lt;/filter-name&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filter-mapping&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;We map our Application object, &lt;i&gt;CatalogServerApplication&lt;/i&gt;, to the Wicket Filter which handles all requests.&amp;nbsp; We then provide the &lt;i&gt;applicationClassName&lt;/i&gt; parameter linked to the fully qualified path to our &lt;i&gt;CatalogServerApplication&lt;/i&gt; class to let Wicket know which application is available.&amp;nbsp; Also take note of the url-mapping to /*.&amp;nbsp; The Wicket filter will only process requests that are Wicket requests, everything else is ignored.&amp;nbsp; This ensures that static content will be served appropriately by the container. &amp;nbsp;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Deploy&lt;/b&gt;&lt;/p&gt;&lt;p&gt;We can now create a WAR file for deployment to our Java Application Server.&amp;nbsp; There is no further configuration necessary.&amp;nbsp; Once deployed, point your browser to the url:&amp;nbsp; http://&amp;lt;servername&amp;gt;/&amp;lt;warfilename&amp;gt; where &amp;lt;servername&amp;gt; &amp;amp; &amp;lt;warfilename) map appropriatly such as, http://localhost:8080/CatalogServer.&lt;/p&gt;&lt;p&gt;We have now seen how to take a console based application and easily convert it into a web application using the Wicket Framework.&amp;nbsp; Integrating the AgsJWS API with Web Application frameworks is an easy way to make efficient use of the API.&amp;nbsp; The web application described here is the foundation for building a web enabled service catalog to accurately show which services are available from appropriate servers.&amp;nbsp; I have posted the full web application with source code to the &lt;a href="http://resources.esri.com/arcgisserver/adf/java/index.cfm?fa=codeGalleryDetails&amp;amp;scriptID=16496%20" title="Full Source Code link"&gt;Code Gallery&lt;/a&gt; for you to download, deploy, and extend. I encourage you to give it a try for yourself.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=7317" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Frameworks/default.aspx">Frameworks</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Server/default.aspx">ArcGIS Server</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Best+practices/default.aspx">Best practices</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/AgsJWS/default.aspx">AgsJWS</category></item><item><title>Using ArcGIS Java WebServices API</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/07/23/Using-ArcGIS-Java-WebServices-API.aspx</link><pubDate>Thu, 23 Jul 2009 15:00:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:6595</guid><dc:creator>dano</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/6595.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=6595</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=6595</wfw:comment><description>
&lt;p&gt;Since the release of JavaEE 5, Java has become a powerful development platform for Service Oriented Architectures (SOA) as this release significantly enhanced the Web Services capabilities.&amp;nbsp; Most of these enhanced features were later included in the subsequent release of Java SE 6.&amp;nbsp; Of course Java supported Web Services through JAX-RPC 1.1 in J2EE 1.4, but the enhancements made in the latest versions of Java Web Services (JWS) API's allow developers to more easily build enterprise class applications with Web Services.&amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Up until and through the release of ArcGIS Server for Java 9.3, Java clients used Apache’s Axis implementation of the SOAP protocol.&amp;nbsp; Axis has proven to be a stable platform to implement Java Web Services, but in order to take advantage of the enhancements we looked into implementing the updated JWS stack at ArcGIS Server for Java 9.3.1.&amp;nbsp; Included in this stack is JAX-WS, the Java API for XML-Based Web Services, and JAXB, the Java Architecture for XML Binding.&amp;nbsp; Ultimately, JAX-WS did not fit our Java Web ADF model efficiently so we customized our own API based on JAXB called the ArcGIS Java WebServices (AgsJWS) API.&amp;nbsp; AgsJWS uses two XML-based &lt;a href="http://www.w3.org/" target="_blank"&gt;W3C&lt;/a&gt; specifications, Web Service Description Language (WSDL) and SOAP to describe and communicate through a services based API.&amp;nbsp; The AgsJWS stack is provided by the ArcGIS Server for Java runtime and a vast majority of ArcGIS Server’s clients use it to consume the server’s capabilities. Among these clients, the WebADF and REST serve as the foundation for building applications that bring ArcGIS to the web.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;To familiarize ourselves with the API, we will first get a description of services from an ArcGIS Server for Java services directory.&amp;nbsp; Then we will form a URL from one of the returned services to create a console based app to generate a Map Image.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;An ArcGIS Server instance maintains a list of services and their properties, such as name, type, and folder.&amp;nbsp; The Catalog service enables you to traverse and explore the services exposed by an ArcGIS Server instance.&amp;nbsp; Each instance provides one Catalog service.&amp;nbsp; An ArcGIS Server instance includes the ArcGIS Server Web services application to handle SOAP requests and responses.&amp;nbsp; The application is configured for use in a folder named "services".&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&amp;nbsp;WSDL Syntax to send to the service directory is as follows:&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;i&gt;http://&amp;lt;WebServer-Hostname&amp;gt;/&amp;lt;ArcGIS-Instance&amp;gt;/services?wsdl &lt;/i&gt;&lt;/p&gt;

&lt;p&gt;We will use &lt;a href="http://resources.esri.com/arcgisonlineservices/index.cfm?fa=content" title="ArcGIS Online Resource Center" target="_blank"&gt;ArcGIS Online&lt;/a&gt; Service Directory with the following WSDL syntax URL: &lt;/p&gt;

&lt;p&gt;&lt;i&gt;http://server.arcgisonline.com/arcgis/services?wsdl&lt;/i&gt; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;ArcGIS Server for Java Service Directory&lt;/b&gt;&lt;/p&gt;


&lt;code&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServer&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Constructor&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServer&lt;/font&gt;&lt;font color="#000000"&gt;(){}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&amp;nbsp;getCatalog&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;URL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;){&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;URL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceDescription&lt;/font&gt;&lt;font color="#000000"&gt;[]&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;getDesription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&amp;nbsp;catalog&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;){&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;catalog.getServiceDescriptions&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;main&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt;[]&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;args&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Create&amp;nbsp;CatalogServer&amp;nbsp;object&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServer&amp;nbsp;catalogServer&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;CatalogServer&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Get&amp;nbsp;the&amp;nbsp;ServiceCatalogBindingStub&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceCatalogBindingStub&amp;nbsp;catalog&amp;nbsp;=&amp;nbsp;catalogServer.getCatalog&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;endpointURL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Print&amp;nbsp;out&amp;nbsp;basic&amp;nbsp;information&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"Version:&amp;nbsp;"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;catalog.getMessageVersion&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"requiresTokens:&amp;nbsp;"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;catalog.requiresTokens&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"TokenServiceURL:&amp;nbsp;"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;catalog.getTokenServiceURL&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceDescription&lt;/font&gt;&lt;font color="#000000"&gt;[]&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;sds&amp;nbsp;=&amp;nbsp;catalogServer.getDesription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;catalog&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;for&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;int&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;i&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;sds.length;&amp;nbsp;i++&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ServiceDescription&amp;nbsp;sd&amp;nbsp;=&amp;nbsp;sds&lt;/font&gt;&lt;font color="#000000"&gt;[&lt;/font&gt;&lt;font color="#000000"&gt;i&lt;/font&gt;&lt;font color="#000000"&gt;]&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"Service&amp;nbsp;Name:&amp;nbsp;"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;sd.getName&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"Service&amp;nbsp;Capabilities:&amp;nbsp;"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;sd.getCapabilities&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2a00ff"&gt;"Service&amp;nbsp;Type:&amp;nbsp;"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;sd.getType&lt;/font&gt;&lt;font color="#000000"&gt;())&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;endpointURL&amp;nbsp;=&amp;nbsp;&lt;br&gt;&lt;/font&gt;&lt;font color="#2a00ff" size="1"&gt;&lt;a href="http://server.arcgisonline.com/arcgis/services?wsdl"&gt;http://server.arcgisonline.com/arcgis/services?wsdl&lt;/a&gt;&lt;/font&gt;&lt;font color="#000000" size="1"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/code&gt;


&lt;p&gt;Running the CatalogServer class will result in the following condensed output to the console:&amp;nbsp; &lt;/p&gt;

&lt;p style="padding-left:30px;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:courier new,courier;"&gt;Version: esriArcGISVersion93&lt;br&gt;requiresTokens: false&lt;br&gt;TokenServiceURL: &lt;br&gt;Service Name: ESRI_StreetMap_World_2D&lt;br&gt;Service Capabilities: Map&lt;br&gt;Service Type: MapServer&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-size:small;"&gt;&lt;span style="font-family:courier new,courier;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:courier new,courier;"&gt;
&lt;p&gt;Your output will be much longer as there are many services available from ArcGIS Online.&amp;nbsp; We can now form a URL based on the Service Name returned to generate a Map Image using the standard ArcGIS Scheme for all SOAP Web Service URL's:&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&lt;i&gt;http://&amp;lt;hostname&amp;gt;/&amp;lt;arcgis-instance&amp;gt;/services/&amp;lt;folder&amp;gt;/&amp;lt;service-name&amp;gt;/&amp;lt;service-type&amp;gt;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;The URL for the &lt;a href="http://resources.esri.com/arcgisonlineservices/index.cfm?fa=content_detail&amp;amp;contentID=C3D3A7D6-1422-2413-190ED12295F6FA3F" title="World 2D" target="_blank"&gt;ESRI_StreetMap_World_2D&lt;/a&gt; would look like the following: &amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;&lt;font size="1"&gt;http://server.arcgisonline.com/arcgis/services/ESRI_StreetMap_World_2D/mapserver?wsdl&lt;/font&gt; &lt;/i&gt;&lt;/p&gt;

&lt;p&gt;The &lt;i&gt;MapServerBindingStub.exportMapImage()&lt;/i&gt; method generates a dynamic map image from a data frame (map) in an ArcGIS Server map service. &amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Export Map Image from Service Catalog&lt;br&gt;&lt;/b&gt;&lt;/p&gt;


&lt;code&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ExportMapImage&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ExportMapImage&lt;/font&gt;&lt;font color="#000000"&gt;(){}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;MapServerBindingStub&amp;nbsp;getMap&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;URL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;){&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;MapServerBindingStub&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;URL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;MapDescription&amp;nbsp;getMapDescription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;MapServerBindingStub&amp;nbsp;map&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;){&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;MapServerInfo&amp;nbsp;mapInfo&amp;nbsp;=&amp;nbsp;map.getServerInfo&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;map.getDefaultMapName&lt;/font&gt;&lt;font color="#000000"&gt;()&amp;nbsp;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;mapInfo.getDefaultMapDescription&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ImageDescription&amp;nbsp;getImageDescription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ImageType&amp;nbsp;imgType,&amp;nbsp;ImageDisplay&amp;nbsp;imgDisplay&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;){&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ImageDescription&amp;nbsp;imgDesc&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ImageDescription&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgDesc.setImageType&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgType&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgDesc.setImageDisplay&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgDisplay&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;return&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;imgDesc;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;public&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;main&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt;[]&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;args&lt;/font&gt;&lt;font color="#000000"&gt;)&amp;nbsp;{&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ExportMapImage&amp;nbsp;mapImage&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ExportMapImage&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;MapServerBindingStub&amp;nbsp;map&amp;nbsp;=&amp;nbsp;mapImage.getMap&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;endpointURL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;MapDescription&amp;nbsp;mapDesc&amp;nbsp;=&amp;nbsp;mapImage.getMapDescription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;map&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Set&amp;nbsp;the&amp;nbsp;image&amp;nbsp;format&amp;nbsp;and&amp;nbsp;return&amp;nbsp;type&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ImageType&amp;nbsp;imgtype&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ImageType&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgtype.setImageFormat&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;EsriImageFormat.esriImagePNG&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgtype.setImageReturnType&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;EsriImageReturnType.esriImageReturnURL&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Set&amp;nbsp;the&amp;nbsp;image&amp;nbsp;size&amp;nbsp;and&amp;nbsp;resolution&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ImageDisplay&amp;nbsp;imgdisp&amp;nbsp;=&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ImageDisplay&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgdisp.setImageHeight&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;500&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgdisp.setImageWidth&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;500&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgdisp.setImageDPI&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#990000"&gt;96&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Send&amp;nbsp;image&amp;nbsp;format&amp;nbsp;and&amp;nbsp;size&amp;nbsp;to&amp;nbsp;return&amp;nbsp;an&amp;nbsp;ImageDescritipn&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ImageDescription&amp;nbsp;imgDesc&amp;nbsp;=&amp;nbsp;mapImage.getImageDescription&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;imgtype,&amp;nbsp;imgdisp&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Export&amp;nbsp;a&amp;nbsp;map&amp;nbsp;image&amp;nbsp;and&amp;nbsp;generate&amp;nbsp;Map&amp;nbsp;Image&amp;nbsp;URL&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;MapImage&amp;nbsp;mapImageUrl&amp;nbsp;=&amp;nbsp;map.exportMapImage&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;mapDesc,&amp;nbsp;imgDesc&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;mapUrl&amp;nbsp;=&amp;nbsp;mapImageUrl.getImageURL&lt;/font&gt;&lt;font color="#000000"&gt;()&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#3f7f5f"&gt;//&amp;nbsp;Print&amp;nbsp;out&amp;nbsp;the&amp;nbsp;URL&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;System.out.println&lt;/font&gt;&lt;font color="#000000"&gt;(&amp;nbsp;&lt;/font&gt;&lt;font color="#2a00ff"&gt;"Map&amp;nbsp;Image&amp;nbsp;URL&amp;nbsp;=&amp;nbsp;"&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;+&amp;nbsp;mapUrl&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color="#7f0055"&gt;&lt;b&gt;private&amp;nbsp;static&amp;nbsp;&lt;/b&gt;&lt;/font&gt;&lt;font color="#000000"&gt;String&amp;nbsp;endpointURL&amp;nbsp;=&amp;nbsp;&lt;br&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font color="#2a00ff"&gt;"http://server.arcgisonline.com/arcgis/services/ESRI_StreetMap_World_2D/mapserver?wsdl"&lt;/font&gt;&lt;font color="#000000"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font color="#ffffff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;br&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/code&gt; 


&lt;p&gt;&lt;b&gt;Return Value&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Executing the ExportMapImage class will return a URL to a MapImage referencing the properties of the generated map image set in the class such as image width and height, map extent, map scale, and dpi.&lt;/p&gt;

&lt;p&gt;Using the two classes above you can get a list of services from an ArcGIS Server Services Catalog and generate a map image from the services returned.&amp;nbsp; This will be the foundation for building web applications using the ArcGIS Java Web Services API. &amp;nbsp;&lt;/p&gt;

&lt;p&gt;You can find more information about the ArcGIS Server SOAP SDK from the &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/apis/soap/index.htm" title="ArcGIS SOAP SDK" target="_blank"&gt;Resource Center&lt;/a&gt; and usage of the &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/api/arcgiswebservices/index.html" title="AgsJWS Javadoc" target="_blank"&gt;ArcGIS Java WebServices (AgsJWS) API&lt;/a&gt;.&amp;nbsp; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=6595" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Server/default.aspx">ArcGIS Server</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/SOE/default.aspx">SOE</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/AgsJWS/default.aspx">AgsJWS</category></item><item><title>The Java Special Interest Group, UC2009</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/07/09/The-Java-Special-Interest-Group_2C00_-UC2009.aspx</link><pubDate>Thu, 09 Jul 2009 21:37:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:6917</guid><dc:creator>eric906</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/6917.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=6917</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=6917</wfw:comment><description>&lt;P&gt;This year's event, sponsored by IBM, will feature 2 excellent speakers. &lt;/P&gt;
&lt;P&gt;Susan Port, Platforms Systems Manager for the &lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:minor-bidi;"&gt;&lt;A class="" href="http://www.mpac.ca/"&gt;Municipal Property Assessment Corporation&lt;/A&gt; in Ontario, Canada, &lt;/SPAN&gt;will be sharing the business problem and her vision of getting property&amp;nbsp;tax&amp;nbsp;assessment information disseminated to all the property owners of Ontario, Canada. Susan and her team were successfull in rolling out their IBM Portal system, which is based on&amp;nbsp;ArcGIS Server for the Java Platform and the Java ADF.&lt;/P&gt;
&lt;P&gt;Interested in Portal/Portlet developement with ESRI technology? Susan's talk will be very informative, and we are grateful to have her join us.&lt;/P&gt;
&lt;P&gt;We will also&amp;nbsp;be honored to have &lt;A class="" href="http://www.ibm.com/developerworks/blogs/page/Doug_Tidwell"&gt;Doug Tidwell&lt;/A&gt; of IBM speak to us during this hour. Doug is a well known Cloud Computing expert and has given talks and presentations at many conferences world-wide, including the JavaOne 2009 International Java Developers Conference. He&amp;nbsp;will be sharing the topic: "&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;STRONG&gt;Using REST and WS-* in the Cloud".&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;The abstract for&amp;nbsp;his talk&amp;nbsp;is as follows:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;"REST and WS-* are the two most common ways to access services in the cloud. In this session we'll start with a look at the REST and WS-* APIs for several common cloud services. Next, we'll look at the strengths and weaknesses of each approach and discuss why you would want to use one approach (or both) in different scenarios. We'll wrap up the session with a look at advanced features (security and transactions) and how REST and WS-* implement them. You'll leave with an understanding of these two major architectural styles and how they complement each other. "&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;To finish up the hour, attendees will have time to share questions and comments with Senior Java Developers from the Java Team.&amp;nbsp; ArcGIS Server and Engine for Java are YOUR products. The team is most anxious to hear your feedback on how they are serving your needs and where the Java road is taking the ArcGIS platform.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;FREE LUNCH will be graciously provided by IBM, so come early and share the lunch hour with us!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Wednesday, July 15th, 12:00 noon in room 6E.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-bidi-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;See you there!&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=6917" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Server/default.aspx">ArcGIS Server</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/User+Conference/default.aspx">User Conference</category></item><item><title>Planning for User Conference 2009</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/07/07/Planning-for-User-Conference-2009.aspx</link><pubDate>Tue, 07 Jul 2009 19:17:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:6852</guid><dc:creator>ajoseph</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/6852.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=6852</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=6852</wfw:comment><description>&lt;P&gt;It’s that time of the year again! Our International User Conference 2009 is right around the corner. We hope to meet the familiar faces that join us year after year as well as some new faces this year. If you are not familiar with our User Conference, you can find information at our &lt;A href="http://www.esri.com/uc"&gt;UC website&lt;/A&gt; or if you wish to peek into our UC preparation, check out our &lt;A href="http://www.flickr.com/photos/esri/sets/72157618786521461/"&gt;UC 2009 photo gallery&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;As much as UC is exciting, informative and the one place to be, it may also be overwhelming, simply because of the sheer number of events, workshops and presentations. Fortunately, the &lt;A href="http://www.esri.com/events/uc/docs/agenda.pdf"&gt;UC events schedule&lt;/A&gt; is available online and you can &lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1764"&gt;search and plan your agenda&lt;/A&gt; ahead. I have compiled a list of Java specific events and presentations at this year’s UC with hopes to ease out your planning. Please follow the links to add the events to your planner.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Technical Workshop and Demo Theatres&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;We offer technical workshops (TW) that will cover a broader aspect of product and development as well as demo theatres (DT) that are more informal presentations on a focused topic. Here is the list:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;B&gt;Tuesday, July 14th, 2009&lt;/B&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=451"&gt;Developing Web Applications with Java&lt;/A&gt; (TW)&lt;BR&gt;10:15 A. M – 11:30 A.M. at Room 6 E&lt;BR&gt;&lt;BR&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=521"&gt;Securing your ArcGIS Server for the Java platform site&lt;/A&gt; (TW)&lt;BR&gt;1:30 P. M – 2:45 P. M at Room 8&lt;BR&gt;&lt;BR&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=582"&gt;Building Solutions with ArcGIS Engine and Java&lt;/A&gt; (TW)&lt;BR&gt;3:15 P. M - 4:30 P. M at Room 15 A&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;B&gt;Wednesday, July 15th, 2009&lt;/B&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1664"&gt;Server Object Extensions with Java&lt;/A&gt; (DT)&lt;BR&gt;9:00 A. M – 10:00 A. M at Showcase Software Island –Server GIS (Exhibit Hall C)&lt;BR&gt;&lt;BR&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1665"&gt;ArcGIS Server –Java Web ADF Editing Task Enhancements&lt;/A&gt; (DT)&lt;BR&gt;10:00 A.M – 11:00 A.M at Showcase Software Island –Server GIS (Exhibit Hall C)&lt;BR&gt;&lt;BR&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1669"&gt;Using ArcGIS Java Web Services Toolkit&lt;/A&gt; (DT)&lt;BR&gt;2:00 P.M – 3:00 P.M at Showcase Software Island –Server GIS (Exhibit Hall C)&lt;BR&gt;&lt;BR&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1763"&gt;Rapid Application Development using ArcGIS Engine and Java&lt;/A&gt; (DT)&lt;BR&gt;4:00 P.M - 5:00 P.M at Showcase Software Island – Desktop Developer (Exhibit Hall C)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;B&gt;Thursday, July 16th, 2009&lt;/B&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1765"&gt;Building rich applications using ArcGIS Engine and RCP&lt;/A&gt; (DT)&lt;BR&gt;10:00 A.M. -11:00 A.M at Showcase Software Island – Desktop Developer (Exhibit Hall C)&lt;BR&gt;&lt;BR&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1675"&gt;Using the Eclipse/NetBeans Developer Experience&lt;/A&gt; (DT)&lt;BR&gt;11:00 A.M – 12:00 P.M at Showcase Software Island –Server GIS (Exhibit Hall C)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;B&gt;Showcase Software Island and SIG&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;You can meet and chat with our product engineers and developers all day on Tuesday &amp;amp; Wednesday and Thursday morning at Software Showcase Island –Server GIS for your Server Java related questions and Software Showcase Island –Desktop for ArcObjects/ArcGIS Engine questions in Exhibit Hall C. When you meet us at the Software Island this year please remember to ask us about Server Object Extensions, ArcGIS Java Extensions for ArcGIS Desktop, ArcGIS Web Services API, Editing task enhancements and/or Performance enhancements for Java Web ADF.&lt;BR&gt;&lt;BR&gt;Also please join us for &lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=1065"&gt;Java Developers Special Interest Group &lt;/A&gt;(SIG) meeting at Room 6E on Wednesday, July 15th at 12:00 noon. You can have a sip of Java as well as munch on Lunch provided by SIG sponsor-IBM. Yep, that's a fine way to spend the noon! We will also post a blog with more information on Java Developer SIG later this weekend.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;New at UC this year&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;The UC team has planned on new events and showcase islands this year based on your feedback and requests; you may want to check them out too!&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=2000"&gt;Lightning Talks&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.esri.com/Info/blogs/ucannouncements/archive/2009/06/30/esri-showcase-specialty-teams-offer-insight-on-unique-topics.aspx"&gt;Specialty Teams&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.esri.com/Info/blogs/ucinsider/archive/2009/06/26/watch-uc-technical-workshops.aspx"&gt;Watch UC Technical Workshops&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.esri.com/events/uc/participate/virtual_map_submissions.html"&gt;Virtual Map Gallery&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;IT Strategies Island&lt;/B&gt; (Exhibit Hall C/D):&amp;nbsp;&lt;BR&gt;&lt;BR&gt;IT Strategies Island is also new this year to discuss and strategize emerging trends in Information Technology (not necessarily GIS-centric). The topics covered will be Cloud Computing, Virtualization, SOA, Software + Services, Open Source, BI/ERP/CRM/ECM, Standards and Interoperability, Return on Investment (ROI) and GIS.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;What else?&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;Finally, the list below is a potpourri of other random links that I thought might interest you.&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=843"&gt;Showcase Program Island (Hands-on Learning Lab)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://events.esri.com/uc/2009/infoWeb/OnlineAgenda/?fa=ofg_details_form&amp;amp;ScheduleID=843"&gt;Showcase Software Island - Software Feedback&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.esri.com/Info/blogs/ucinsider/archive/2009/06/12/find-answers-at-the-technical-support-island.aspx"&gt;Showcase - Technical Support (Doctor's Office)&amp;nbsp;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.esri.com/Info/blogs/ucinsider/archive/2009/07/01/get-the-most-out-of-uc.aspx"&gt;Get the most out of UC&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.esri.com/Info/blogs/ucinsider/archive/2009/05/26/tips-for-new-attendees.aspx"&gt;Tips for new Attendees&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.flickr.com/photos/esri/sets/72157618786521461/"&gt;UC 2009 Photo Gallery&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The 9.3.1 release has a lot to offer for a Java developer, find us at UC this year, we'll chat more about it. &lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=6852" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/User+Conference/default.aspx">User Conference</category></item><item><title>Install Java Web ADF NetBeans Plug-in</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/07/02/Install-Java-Web-ADF-NetBeans-Plug_2D00_in.aspx</link><pubDate>Fri, 03 Jul 2009 05:19:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:6754</guid><dc:creator>dano</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/6754.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=6754</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=6754</wfw:comment><description>&lt;p&gt;Currently our &lt;a href="http://resources.esri.com/help/9.3/ArcGISServer/adf/java/help/doc/a362e806-1a5e-43a7-8c0b-5602a752b24b.htm" title="NetBeans Install Doc"&gt;documentation&lt;/a&gt; explains how to install our NetBeans Java Web ADF plug-ins by accessing a URL.&amp;nbsp; The Java Web ADF SDK includes a local repository for our NetBeans plug-in modules which you can choose to install.&amp;nbsp; Here is the process for installing from the local Java Web ADF SDK:&amp;nbsp; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click 'Tools-&amp;gt;Plugins' from the main menu of the IDE.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;In the Plugins window, select the 'Downloaded' tab.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6755/original.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6755/500x330.aspx" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;From the 'Downloaded' tab, click the 'Add Plugins...' button and browse to the following directory in the Java Web ADF SDK, '&amp;lt;AGSHOME&amp;gt;\java\tools\netbeans_plugin'.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6756/original.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6756/497x279.aspx" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;In the list of available plug-ins, check the 'Install' check box associated with your ArcGIS Java ADF plug-in.&amp;nbsp; This will enable the 'Install' button.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6757/original.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6757/500x330.aspx" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Click 'Install' and the NetBeans IDE installer window appears.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6759/original.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6759/500x449.aspx" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Click 'Next' to confirm the ESRI ArcGIS Java ADF for NetBeans plug-in will be installed.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Read and accept the terms of the license agreement displayed and click 'Install'.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6761/original.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6761/500x449.aspx" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;After the installation completes successfully, click 'Finish' and restart the IDE.&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6760/original.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6760/500x449.aspx" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;On restart you should be able to opne the Plug-ins Dialog again and select the 'Installed' tab to see the list of installed plug-ins.&amp;nbsp; If everything went successfully, you should see the ESRI Java Web ADF plug-ins listed under the 'Web &amp;amp; Java EE' category.&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6758/original.aspx" target="_blank"&gt;&lt;img src="http://blogs.esri.com/Dev/photos/java_tech_blog_images/images/6758/500x330.aspx" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;At this point you are ready to create your first &lt;a href="http://resources.esri.com/help/9.3/arcgisserver/adf/java/help/doc/d31e93de-229d-4136-81da-315816ad3478.htm"&gt;ArcGIS Web Project&lt;/a&gt;.&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=6754" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Web+ADF/default.aspx">Web ADF</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/AgsJDE/default.aspx">AgsJDE</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/NetBeans/default.aspx">NetBeans</category></item><item><title>Blending: where does this happen?</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/06/26/Blending_3F00_.aspx</link><pubDate>Fri, 26 Jun 2009 17:00:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:6387</guid><dc:creator>eric906</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/6387.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=6387</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=6387</wfw:comment><description>&lt;P&gt;Ever wonder what "Blending" in the browser or&amp;nbsp;web tier really means with respect to the Java Web ADF?&lt;/P&gt;
&lt;P&gt;The topic is somewhat mysterious. The confusion is understandable, as the discussion hasn't necessarily been brought to the forefront of the Java ADF&amp;nbsp;documentation. The question is often asked: "Where does the application blend the images together from different map resources?".&lt;/P&gt;
&lt;P&gt;This image "fusion" can take place either in the web browser or it can happen in the web server. &lt;/P&gt;
&lt;P&gt;The answer is that if your application contains at least one tiled/cached map resource, along with any others, then this "blending" takes place in the web browser. If a tiled/cached map resource is not present, then all exported images from the ArcGIS Server are assembled at the Web Server level.&lt;/P&gt;
&lt;P&gt;Now, does this really matter? Well, it could have an effect on performance, obviously. If the web server is busy "fusing" away for all concurrent users, application response times could be impacted. If the blending is off-loaded to your user's web browser, the web server is free to do more work.&lt;/P&gt;
&lt;P&gt;I'm hoping this clarifies things a bit!&lt;/P&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=6387" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Web+ADF/default.aspx">Web ADF</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Server/default.aspx">ArcGIS Server</category></item><item><title>Getting started..?</title><link>http://blogs.esri.com/Dev/blogs/arcgisjava/archive/2009/06/19/Getting-started_2E002E003F00_.aspx</link><pubDate>Sat, 20 Jun 2009 02:46:00 GMT</pubDate><guid isPermaLink="false">b60b3f0a-e2bd-4be5-8a18-822c697649ab:6495</guid><dc:creator>ajoseph</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.esri.com/Dev/blogs/arcgisjava/comments/6495.aspx</comments><wfw:commentRss>http://blogs.esri.com/Dev/blogs/arcgisjava/commentrss.aspx?PostID=6495</wfw:commentRss><wfw:comment>http://blogs.esri.com/Dev/blogs/arcgisjava/rsscomments.aspx?PostID=6495</wfw:comment><description>&lt;p class="MsoNormal"&gt;When I joined ESRI a couple of years ago, I was a brand new
Java developer, fresh out of school - shapefiles and spatial references scared
me to death. Today, I have come a long way and my GIS comfort zone has expanded
in all directions and dimensions. &lt;span&gt;&amp;nbsp;&lt;/span&gt;For
all those new folks sailing in the same boat, thought will share with you some of my old bookmarks.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;New to GIS&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;If you are a Java developer, new to GIS world,&lt;span&gt;&amp;nbsp;
&lt;/span&gt;&lt;span&gt;the &lt;/span&gt;one great hurdle to cross is
the great ocean of GIS lingo.&lt;span&gt;&amp;nbsp; &lt;/span&gt;You
might often have to find definitions for simple, yet critical concepts like a layer, mxd, &lt;span&gt;&lt;/span&gt;geodatabase or a
feature renderer. The two best locations to get started with GIS basics are the &lt;a href="http://support.esri.com/index.cfm?fa=knowledgebase.gisDictionary.gateway"&gt;GIS
Dictionary&lt;/a&gt; and &lt;a href="http://webhelp.esri.com/arcgisdesktop/9.3"&gt;ArcGIS
Desktop Help&lt;/a&gt;. The GIS dictionary usually provides two line definitions of GIS
terminologies whereas, the ArcGIS Desktop help has more elaborate explanation. &lt;span&gt;&amp;nbsp;&lt;/span&gt;In
fact, ArcGIS Desktop help is a user help for our &lt;a href="http://www.esri.com/products/#1"&gt;ArcGIS Desktop&lt;/a&gt; product, but it
is the best place I have found to strengthen my GIS fundamentals. &lt;span&gt;&amp;nbsp;You
can &lt;/span&gt;browse through the help to catch up on some &lt;a href="http://http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=How_maps_convey_geographic_information"&gt;intro&lt;/a&gt;
and concepts on &lt;a href="http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Essential_readings_about_the_geodatabase"&gt;geodatabase&lt;/a&gt;,
&lt;a href="http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Feature_class_basics"&gt;feature
class&lt;/a&gt;, &lt;a href="http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Raster_basics"&gt;raster&lt;/a&gt;,
&lt;a href="http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=About_coordinate_systems_and_map_projections"&gt;coordinate
system&lt;/a&gt; and &lt;a href="http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=What_is_geoprocessing?"&gt;geoprocessing&lt;/a&gt;.
You may not come across those terminologies right away but it will help you in
the long run.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;New to ArcGIS Server&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;If you are
building JSF (Web ADF) applications,&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://resources.esri.com/arcgisserver/adf/java/"&gt;Java
Web ADF help&lt;/a&gt; is the best place to go. However, if you are totally new to the
ArcGIS Server world, I would advise you to play with ArcGIS manager a bit and
learn about publishing services, differences between SOC/SOM, GIS resource/ GIS
service and how to cache maps. One stop-shop for that is our &lt;a href="http://webhelp.esri.com/arcgisserver/9.3.1/java/"&gt;ArcGIS
Server Web help&lt;/a&gt;!&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;New to ArcGIS Engine&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;If you are new to ArcGIS Engine, check out our Getting
Started section on our &lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/ea39ddad-31a4-430d-a5da-4508e749f713.htm"&gt;ArcGIS
Engine help&lt;/a&gt;. Along with that, I also strongly recommend our UC 2007
technical session video on &lt;a href="http://edn.esri.com/index.cfm?fa=media.detail&amp;amp;media=72"&gt;Creating
Engine Applications with Visual Java Beans&lt;/a&gt;. It is a lengthy one hour video,
but worth every minute of it. &lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;Newsletters and Video presentations&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;ESRI also
releases newsletters and magazines that you could subscribe to and they are also
available Online. The magazines help you to get in touch with the GIS concepts.
After all, it is more interesting to read a magazine than a help topic! So, here
is the list :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://www.esri.com/news/arcnews/arcnews.html"&gt;ArcNews&lt;/a&gt;
    is a quarterly issue that covers general news on ESRI technologies and GIS
    communities around the world. 
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://www.esri.com/news/arcwatch/index.html"&gt;ArcWatch&lt;/a&gt;,
    magazine provides information on ESRI products and applications built on
    them. 
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;Of course, don’t forget to add &lt;a href="http://www.esri.com/news/arcuser/index.html"&gt;ArcUser&lt;/a&gt; magazine to
    your list. The last issue of ArcUser has an interesting article: “&lt;a href="http://www.esri.com/news/arcuser/0309/files/9reasons.pdf"&gt;Top
    Nine Reasons to use a file Geodatabase&lt;/a&gt;”
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;Also, Check out &lt;a href="http://edn.esri.com/index.cfm?fa=media.gateway"&gt;EDN
site&lt;/a&gt; as well as &lt;a href="http://resources.esri.com/arcgisserver/adf/java/index.cfm?fa=mediaGallery"&gt;Java
Resource center Media Gallery&lt;/a&gt; for video presentations of our past
conferences. The list below is my all time favorites:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://edn.esri.com/index.cfm?fa=media.detail&amp;amp;media=140"&gt;Developers
    Guide to the Geodatabase&lt;/a&gt;
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://edn.esri.com/index.cfm?fa=media.detail&amp;amp;media=58"&gt;Advanced
    ArcGIS Engine and Java&lt;/a&gt;
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://resources.esri.com/arcgisserver/adf/java/index.cfm?fa=mediaGalleryDetails&amp;amp;mediaID=6D42B017-1422-2418-3439F234BEFDF4EA"&gt;Building
    and Extending tasks for ArcGIS Server Web ADF&lt;/a&gt;
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://edn.esri.com/index.cfm?fa=media.detail&amp;amp;media=116"&gt;Building
    Java Applications using the ArcGIS Server Web ADF and AJAX&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;At last, if you have learnt to
play with Visual Java Beans or WebControls but stumped by the Automation
Exceptions and Java proxies, the following list of topics will help you
understand ArcObjects.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/fd1a4c8c-d35d-47ee-8abb-9b5755d9465f.htm"&gt;Overview
    of the Java API&lt;/a&gt;
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/7c061b6b-7317-4d53-aa15-a9c0a43f278b.htm"&gt;Casting
    and Runtime type checking&lt;/a&gt;
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/4e1b3f89-0e5a-4caa-990b-b0d7da7afda2.htm"&gt;Working
    with variants&lt;/a&gt;
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/cfcbbfa3-4a45-4469-bdc4-486c0d81f9ca.htm"&gt;Understanding
    the Java-COM Interop&lt;/a&gt;
  &lt;/p&gt;&lt;/li&gt;&lt;li&gt;
    &lt;p class="MsoNormal"&gt;&lt;a href="http://resources.esri.com/help/9.3/ArcGISEngine/java/doc/738642fc-d097-11dc-a01f-cf59accb4bfd.htm"&gt;ArcObjects
    Error Codes&lt;/a&gt;
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;In all, hang in there and believe me, the more you learn
it, the more you will love it, Am I not a fine example for that? Also, all those
veterans out there, please feel free to comment on the blog and share your bookmarks or reminiscences of your early ArcGIS days. We all know that our new-bies
definitely need some pep talk!&lt;/p&gt;&lt;img src="http://blogs.esri.com/Dev/aggbug.aspx?PostID=6495" width="1" height="1"&gt;</description><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcObjects/default.aspx">ArcObjects</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/ArcGIS+Server/default.aspx">ArcGIS Server</category><category domain="http://blogs.esri.com/Dev/blogs/arcgisjava/archive/tags/Getting+Started/default.aspx">Getting Started</category></item></channel></rss>