Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 89101 - Web Services Explorer should be able to run without Eclipse
Summary: Web Services Explorer should be able to run without Eclipse
Status: CLOSED WONTFIX
Alias: None
Product: WTP Webservices
Classification: WebTools
Component: wst.ws (show other bugs)
Version: 0.7   Edit
Hardware: All All
: P3 enhancement with 4 votes (vote)
Target Milestone: ---   Edit
Assignee: Gilbert Andrews CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 107130 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-03-25 10:24 EST by Chris Brealey CLA
Modified: 2008-02-07 17:25 EST (History)
8 users (show)

See Also:


Attachments
Windows batch script to copy jars from Eclipse required by WSExplorer (1.31 KB, text/plain)
2005-04-29 11:32 EDT, Chris Brealey CLA
no flags Details
Default Tomcat 4.1.31 server.xml plus Context element for WSExplorer (18.03 KB, text/plain)
2005-04-29 11:34 EDT, Chris Brealey CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Brealey CLA 2005-03-25 10:24:34 EST
The Web Services Explorer Web application should be capable of running outside 
of the Eclipse environment. Detailed requirements and design are forthcoming in 
a design document, a link to which will be appended to this defect.
Comment 1 Chris Brealey CLA 2005-04-12 11:43:43 EDT
I committed last night several changes to the Explorer that allow it to run 
outside of Eclipse for the purpose of interacting with UDDI registries. Work 
that remains:

1. The WSDL half of the Explorer is not working outside of Eclipse yet.

2. There are references to Eclipse API that still need to be designed out, 
particularly around the WSDL import/export functions. The Web Service Finder 
and WSDL Consumer frameworks should help us remove these.

3. The Explorer's "properties/favorites_default.wsil" file needs to be 
relocated from the plugin to the plugin's WAR, and logic needs to be added to 
make a copy of the file under the favorites metadata directory for all 
subsequent processing of favorites.

4. The location of the Explorer's favorites metadata directory must be passed 
in via a URL parameter when the Explorer is running without Eclipse. If this 
parameter is omitted, the Explorer does not react nicely. The Explorer should 
detect this missing property and either prompt the user via a new, simple Web 
page to enter the location of the favourites directory, or infer a reasonable 
directory from the servlet container.
Comment 2 Chris Brealey CLA 2005-04-29 11:32:30 EDT
Created attachment 20515 [details]
Windows batch script to copy jars from Eclipse required by WSExplorer
Comment 3 Chris Brealey CLA 2005-04-29 11:34:12 EDT
Created attachment 20516 [details]
Default Tomcat 4.1.31 server.xml plus Context element for WSExplorer
Comment 4 Chris Brealey CLA 2005-04-29 11:53:02 EDT
For anyone who wishes to run the Web Services Explorer from Eclipse WTP M4 but 
outside of the Eclipse IDE, the following instructions and attachments should 
help. As noted in earlier comments, support for UDDI appears to be functioning 
in the standalone WSExplorer (vs. when run inside Eclipse), whereas support for 
WSDL invocation is NOT functioning in the standalone WSExplorer (vs. when run 
inside Eclipse). Convenient, eh?

1. Unzip M4 somewhere, and set M4 to its "plugins" directory
   Eg. SET M4=C:\wtp-sdk-1.0M4\eclipse\plugins

2. Unzip Tomcat somewhere, and set CATALINA_HOME to its home directory
   Eg. SET CATALINA_HOME=C:\jakarta-tomcat-4.1.31

3. Change to %CATALINA_HOME%\webapps.
   a. Create new directory "wsexplorer".

4. Change to %CATALINA_HOME%\webapps\wsexplorer.
   a. Unzip %M4%\org.eclipse.wst.ws.explorer_1.0.0\wsexplorer.war

5. Change to %CATALINA_HOME%\webapps\wsexplorer\WEB-INF\lib.
   a. Run the attached wsejars.bat script to copy several required
      jars* from Eclipse WTP M4.
      Eg. wsejars %M4%

6. Add the following element to %CATALINA_HOME%\conf\server.xml for the
   Web Services Explorer, or use the attached server.xml.
   <Context path="/wsexplorer" docBase="wsexplorer" debug="0"/>

7. Run Tomcat.
   Eg. %CATALINA_HOME%\bin\catalina run

8. Create a temporary directory for the Web Services Explorer to use.
   Eg. C:\wsexplorer

9. Start your browser and enter the following URL:
   http://localhost:8080/wsexplorer/wsexplorer.jsp?
stateLocation=C:\wsexplorer&defaultFavoritesLocation=C:\wtp-sdk-1.0M4
\eclipse\plugins\org.eclipse.wst.ws.explorer_1.0.0
\properties\favorites_default.wsil
   Take note of the two required URL parameters above:
   stateLocation
      Set this to the temporary directory you created in step [8].
   defaultFavoritesLocation
      Set this to the install location of M4 from step [1] suffixed by
      the relative path to the Web Services Explorer's "favorites" file:
      org.eclipse.wst.ws.explorer_1.0.0\properties\favorites_default.wsil


* Required jars:

   org.eclipse.wst.ws.explorer_1.0.0\explorer.jar
   org.eclipse.wst.ws.parser_1.0.0\parser.jar
   org.eclipse.wst.ws_1.0.0\ws.jar
   org.eclipse.wst.wsdl_1.0.0\wsdl.jar
   org.wsdl4j_1.0.0\lib\qname.jar
   org.uddi4j_1.0.0\lib\uddi4j.jar
   org.apache.wsil4j_1.0.0\lib\wsil4j.jar
   org.apache.axis11_1.1.0\lib\axis-ant.jar
   org.apache.axis11_1.1.0\lib\axis.jar
   org.apache.axis11_1.1.0\lib\commons-discovery.jar
   org.apache.axis11_1.1.0\lib\commons-logging.jar
   org.apache.axis11_1.1.0\lib\jaxrpc.jar
   org.apache.axis11_1.1.0\lib\log4j-1.2.8.jar
   org.apache.axis11_1.1.0\lib\saaj.jar
   org.apache.axis11_1.1.0\lib\wsdl4j.jar
   org.eclipse.emf.common_2.1.0\runtime\common.jar
   org.eclipse.emf.common_2.1.0\runtime\common.resources.jar
   org.eclipse.emf.ecore_2.1.0\runtime\ecore.jar
   org.eclipse.emf.ecore_2.1.0\runtime\ecore.resources.jar
   org.eclipse.xsd_2.1.0\runtime\xsd.jar
   org.eclipse.xsd_2.1.0\runtime\xsd.resources.jar
   org.eclipse.core.resources_3.1.0\resources.jar
   org.eclipse.wst.common.emf_1.0.0\runtime\workbench.jar
   org.eclipse.core.runtime_3.1.0.jar
Comment 5 Chris Brealey CLA 2005-06-25 16:51:01 EDT
This doesn't need to be completed in M5. M6 will do. Note that the bulk of this 
enhancement is done, and most of what's left is getting WSDL exploration and 
invocation to work standalone.
Comment 6 Chris Brealey CLA 2005-08-29 09:40:18 EDT
*** Bug 107130 has been marked as a duplicate of this bug. ***
Comment 7 Chris Brealey CLA 2005-09-01 11:49:19 EDT
Targetting M10.
Comment 8 Chris Brealey CLA 2005-11-12 01:06:53 EST
Summary of investigation / changes remaining:

1. Solve the mystery of WSDL invocation not working in standalone mode.

2. Provide a new, simple Export wizard that deposits a modified copy of 
wsexplorer.war into the filesystem or workspace at a location of the user's 
choice. This amounts to copying wsexplorer.war from within the 
org.eclipse.wst.ws.explorer plugin to a location in the filesystem of the 
user's choosing, and inserting the necessary jars identified in 89101. This 
would remove the need for step #5 in 89101.

3. Remove step #8, the requirement to manually create a temporary directory.

4. In step #9, make the "stateLocation" URL parameter optional. If omitted, the 
WSE should pick a reasonable temporary directory, such as the value of the 
java.io.tmpdir property.

5. In step #9, make the "defaultFavoritesLocation" URL parameter optional. The 
favorites_default.wsil file should be relocated within the WAR (ie. under the 
plugin's wsexplorer/ folder) and automatically copied to the "stateLocation" 
directory unless it already exists there.
Comment 9 Chris Brealey CLA 2005-11-15 12:36:33 EST
Deferring enhancements to WTP 1.5 per the memo "Achieving WTP 1.0 Quality 
Targets" by Arthur Ryman [1]. Only item 1 from comment 8, "Solve the mystery of 
WSDL invocation not working in standalone mode.", should we consider doing for 
WTP 1.0. If we come up with a solution to that item, we'll open a separate bug 
targetted to M10 to track it.

[1] http://dev.eclipse.org/mhonarc/lists/wtp-dev/msg02831.html
Comment 10 David Williams CLA 2005-12-28 10:29:43 EST
changing target from 1.5 M1 to 1.5 M5 to reflect new numbering system as we join Collisto. 
Comment 11 Chris Brealey CLA 2006-02-22 16:01:36 EST
Probably can't be contained in M5 due to other fixes/RFEs that are more important for the M5 milestone. Retargetting to M6.
Comment 12 Chris Brealey CLA 2006-03-09 10:37:07 EST
Definitely can't be contained in WTP 1.5 due to other high priority fixes/RFEs. Clearing target until we're certain of a release in which we can implement this.
Comment 13 sreedhar CLA 2006-12-28 16:32:19 EST
I am trying to run web services explorer outside eclipse and till now i don't have luck running it successfully. I followed the steps mentioned in this bug but the code version are different. (wtp 1.5, tomcat 5.5) . I am gettng following error. Does any body has any idea of what i am doing wrong.

Thanks
Sreedhar

exception:WSDLException: faultCode=OTHER_ERROR: java.lang.NullPointerException
        at org.eclipse.xsd.impl.XSDSchemaDirectiveImpl.resolve(XSDSchemaDirectiveImpl.java:373)
        at org.eclipse.xsd.impl.XSDIncludeImpl.patch(XSDIncludeImpl.java:233)
        at org.eclipse.xsd.impl.XSDConcreteComponentImpl.patch(XSDConcreteComponentImpl.java:526)
        at org.eclipse.xsd.impl.XSDSchemaImpl.patch(XSDSchemaImpl.java:1505)
        at org.eclipse.xsd.impl.XSDSchemaImpl.changeAttribute(XSDSchemaImpl.java:2335)
        at org.eclipse.xsd.impl.XSDConcreteComponentImpl.eNotify(XSDConcreteComponentImpl.java:1240)
        at org.eclipse.xsd.impl.XSDSchemaImpl.setSchemaLocation(XSDSchemaImpl.java:829)
        at org.eclipse.wst.wsdl.util.WSDLResourceImpl.doLoad(WSDLResourceImpl.java:253)
        at org.eclipse.wst.wsdl.util.WSDLResourceImpl.doLoad(WSDLResourceImpl.java:282)
        at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1094)
        at org.eclipse.wst.wsdl.internal.impl.wsdl4j.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:195)
        at org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser.getWSDLDefinitionVerbose(WebServicesParser.java:230)
        at org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLElement.loadWSDL(WSDLElement.java:130)
        at org.eclipse.wst.ws.internal.explorer.platform.wsdl.datamodel.WSDLElement.loadWSDL(WSDLElement.java:153)
        at org.eclipse.wst.ws.internal.explorer.platform.wsdl.actions.OpenWSDLAction.run(OpenWSDLAction.java:60)
        at org.eclipse.wst.ws.internal.explorer.platform.engine.ActionEngine.executeAction(ActionEngine.java:221)
        at org.eclipse.wst.ws.internal.explorer.platform.actions.Action.execute(Action.java:111)
        at org.eclipse.wst.ws.internal.explorer.platform.actions.Action.execute(Action.java:105)
        at wsdl.actions.OpenWSDLActionJSP_jsp._jspService(Unknown Source)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
Comment 14 Chris Brealey CLA 2007-01-09 11:51:08 EST
Sreedhar,
are you trying to use the WSE (standlone) to publish/discovery with UDDI, or to explore/invoke WSDL? From the stack trace it looks like the latter. If that's true, note per comment 4 that we didn't have WSDL invocation working in the standalone WSE back on WTP 1.0. Only the UDDI paths worked.

In other words, I don't think you're doing anything wrong, bearing in mind that the versions of the dependency jars listed at the end of comment 4 have changed in WTP 1.5.x. You may simply be trying to drive the standalone WSE thru a scenario known to fail and that we have not had the bandwidth to tackle yet.
Comment 15 Kathy Chan CLA 2007-10-24 17:05:31 EDT
Back in WTP 2.0, we had added an Eclipse extension point in the WSE when we implemented RFE 176493 (WSE:  Make message/transport stack pluggable - https://bugs.eclipse.org/bugs/show_bug.cgi?id=176493).  In addition, the move from Tomcat to Jetty requires the WSE to be packaged as an Eclipse plugin to run in the Jetty engine.  With these two recent development, running the WSE outside of Eclipse is even harder to achieve.  So I think we would just be shelfing that idea for now.  We could revisit that decision if we feel that there is significant demand from the community for this feature to justify re-opening the issue.
Comment 16 Simon Kaegi CLA 2007-10-24 17:15:59 EDT
If this issue is ever re-opened, what's required when embedding in an app server is to factor out the launching of an instance of the Jetty Http Service and just use the existing service provided by the servletbridge. A similar effort was done for infocenter.
Comment 17 Chris Brealey CLA 2008-02-07 17:25:55 EST
Thanks Kathy. I'm good with closing this out.