From: wtff <nu...@jb...> - 2005-07-08 22:12:16
|
Hi everyone, I had the same problem. I have downloaded Eclipse 3.1 final and the current Webtools project (Milestone 5) and chose to install the package which includes both the WST and JST plugins. Then I noticed that there was no Jboss 4.x server binding. Searching through the web and several forums I found some postings about this topic but no solution to it. So I tried to look at the configuration files and tried to set up a Jboss 4 serverdefinition but whatever I tried, I couldn't get it to work properly. My first problem was that the newly defined server definition wasn't shown within the Eclipse Server list. This problem is often posted by users who have tried the same. The solution to this problem is: 1.) the new server definition files must be complete and correct. The complete server definition spans several files within the org.eclipse.jst.server.generic.serverdefinitions_0.7.0 plugin package: - plugin.xml - plugin.properties - servers/<new_server>.serverdef - buildfiles/<new_server>.xml - icons/obj16/<new_server>.gif If the xml fragments to be inserted into the serverdef or buildfile documents is incorrect, the new server does usually simply not appear. No errors are being displayed by Eclipse. If other server definitions that were previously visible have vanished then this is also a hint that the xml configuration files have become syntactically incorrect. 2.) After each modification to the configuration files, eclipse must be restarted with the -clean option (once): >> eclipse.exe -clean Now, when the serverdefinition has been done correctly, the new server shows up within the exlipse server list and can be selected, configured and added to the server view. From there it is possible to start the server. Here begins the final obstacle of the server intregration because my jboss 4.0.2 configuration simply wouldn't start without errors, mostly class cast exceptions... The difficult part here is to configure the startup classpath for a server correctly within the <new_server>.serverdef file. I tried out about everything I could think of but the server inititialization process just wouldn't complete.... Finally I found this link http://dev.eclipse.org/newslists/news.eclipse.webtools/msg04979.html where a guy named Hannes pasted the configuration details to set up a jboss 4.0.1 rc1. However, this configuration didn't work on my Eclipse installation. Furthermore, I was rather interested in setting up a jboss 4.0.2 After some attempts I succeeded to set up a jboss4.0.2 serverdefinition for the environment described above. Basically, a certain set of jboss jar files need to be specified as the jboss start classpath and the jboss project classpath. Don't ask me why this set of jar files is at it is. I don't have a clue why not more jars are required than those specified or whether a smaller set of jars would also work... In addition to the mere set of jars, it is also important to specify two jvm arguments within the serverdef file: -Dprogram.name=eclipse.exe -Djava.endorsed.dirs=${serverRootDirectory}/lib/endorsed It is possible to configure further vm properties like -xms or -xmx but the two properties above are absolutely required. I owe a big THANKS to Hannes for this hint!! One thing that Hannes did within his configuration files was to use attributes like isLibrary="false" within his classpath definitions. I do not know whether these attributes have been deprecated since, but if I include these attributes, the server startup fails, so I left them out and everything worked fine. I'm posting this long description because my working example which is attached below is the result of trial and error. I have no precise knowledge of the inner workings of the eclipse server plugin and it might be the case that my server definition is not fully complete yet, although it seems to be working on first sight. As of this time, I have set up a web project and was able to deploy it to the server. But I havn't yet tried to do the same with other deployment units like ejbs, jcas, j2ee apps etc... With this being said, here are the config files to replace the original ones with: filename [plugin.properties] pluginName= Generic server example definitions providerName=Eclipse.org pluginDescription=Provides example server definitons for the generic server tooling # ============= weblogic8.1 =============== wl81runtimeTypeName=Generic BEA WebLogic Server 8.1 wl81runtimeTypeDescription= Generic BEA WebLogic Server 8.1 runtime wl81serverTypeName=Generic BEA WebLogic Server 8.1 wl81serverTypeDescription=Generic BEA WebLogic Server 8.1 # ============= weblogic9.0 =============== wl90runtimeTypeName=Generic BEA WebLogic Server 9.0 wl90runtimeTypeDescription= Generic BEA WebLogic Server 9.0 runtime wl90serverTypeName=Generic BEA WebLogic Server 9.0 wl90serverTypeDescription=Generic BEA WebLogic Server 9.0 # ============ jboss323 ==================== jboss323runtimeTypeName=Generic JBoss 3.2.3 jboss323runtimeTypeDescription= Generic JBoss 3.2.3 runtime jboss323serverTypeName=Generic JBoss 3.2.3 jboss323serverTypeDescription=Generic JBoss 3.2.3 server # ============ jboss402 ==================== jboss402runtimeTypeName=JBoss 4.0.2 jboss402runtimeTypeDescription=Generic JBoss 4.0.2 runtime jboss402serverTypeName=JBoss 4.0.2 jboss402serverTypeDescription=Generic JBoss 4.0.2 server # ============ jonas414 ==================== jonas414runtimeTypeName=Generic JOnAS 4.1.4 jonas414runtimeTypeDescription= Generic JOnAS 4.1.4 runtime jonas414serverTypeName=Generic JOnAS 4.1.4 jonas414serverTypeDescription=Generic JOnAS 4.1.4 server # ============== serverdef translations ================ ApplicationServerDirectory=Application &Server Directory: serverAddress=A&ddress: serverPort=&Port: jboss323serverConfig=Server Co&nfiguration (minimal/default/all): jboss402serverConfig=Server Co&nfiguration (minimal/default/all): serverclassPath=&Classpath Variable: jonas414mappernames=&Mapper names: jonas414EjbProtocols=&Ejb Protocols: jonasBase=JonAS Co&nfiguration Directory: jonasRoot=JonAS &Installation Directory: beaHome=BEA &Home Directory: beaDomainName=Admin &Domain Name: beaDomainDirectory=Administrati&on Domain Directory: beaDebugPort=De&bug Port: beaStartScript=Start Script: beaStopScript=Stop Script: serverName=Ser&ver Name: username=Use&r Name: password=Pass&word: beaProductionMode=Produc&tion Mode: ========================================== filename: [plugin.xml] | <?xml version="1.0" encoding="UTF-8"?> | <?eclipse version="3.0"?> | <plugin> | | <extension point="org.eclipse.wst.server.core.runtimeTypes"> | <runtimeType | id="org.eclipse.jst.server.generic.runtime.weblogic81" | name="%wl81runtimeTypeName" | description="%wl81runtimeTypeDescription" | vendor="Generic" | version="0" | class="org.eclipse.jst.server.generic.core.internal.GenericServerRuntime" | > | <moduleType | types="j2ee.web" | versions="1.2, 1.3"/> | <moduleType | types="j2ee.ejb" | versions="1.2, 1.3"/> | <moduleType | types="j2ee.ear" | versions="1.2, 1.3"/> | </runtimeType> | <runtimeType | id="org.eclipse.jst.server.generic.runtime.weblogic90" | name="%wl90runtimeTypeName" | description="%wl90runtimeTypeDescription" | vendor="Generic" | version="0" | class="org.eclipse.jst.server.generic.core.internal.GenericServerRuntime" | > | <moduleType | types="j2ee.web" | versions="1.2, 1.3, 1.4"/> | <moduleType | types="j2ee.ejb" | versions="1.2, 1.3, 1.4"/> | <moduleType | types="j2ee.ear" | versions="1.2, 1.3, 1.4"/> | </runtimeType> | <runtimeType | id="org.eclipse.jst.server.generic.runtime.jboss323" | name="%jboss323runtimeTypeName" | description="%jboss323runtimeTypeDescription" | vendor="Generic" | version="0" | class="org.eclipse.jst.server.generic.core.internal.GenericServerRuntime" | > | <moduleType | types="j2ee.web" | versions="1.2, 1.3"/> | <moduleType | types="j2ee.ejb" | versions="1.2, 1.3"/> | <moduleType | types="j2ee.ear" | versions="1.2, 1.3"/> | </runtimeType> | <runtimeType | id="org.eclipse.jst.server.generic.runtime.jboss402" | name="%jboss402runtimeTypeName" | description="%jboss402runtimeTypeDescription" | vendor="Generic" | version="0" | class="org.eclipse.jst.server.generic.core.internal.GenericServerRuntime" | > | <moduleType | types="j2ee.web" | versions="1.2, 1.3, 1.4"/> | <moduleType | types="j2ee.ejb" | versions="1.2, 1.3, 1.4"/> | <moduleType | types="j2ee.ear" | versions="1.2, 1.3, 1.4"/> | </runtimeType> | <runtimeType | id="org.eclipse.jst.server.generic.runtime.jonas414" | name="%jonas414runtimeTypeName" | description="%jonas414runtimeTypeDescription" | vendor="Generic" | version="0" | class="org.eclipse.jst.server.generic.core.internal.GenericServerRuntime" | > | <moduleType | types="j2ee.web" | versions="1.2, 1.3, 1.4"/> | <moduleType | types="j2ee.ejb" | versions="1.2, 1.3, 1.4"/> | <moduleType | types="j2ee.ear" | versions="1.2, 1.3, 1.4"/> | </runtimeType> | | </extension> | | <extension point="org.eclipse.wst.server.core.serverTypes"> | <serverType | runtime="true" | class="org.eclipse.jst.server.generic.core.internal.GenericServer" | id="org.eclipse.jst.server.generic.weblogic81" | initialState="stopped" | supportsRemoteHosts="false" | runtimeTypeId="org.eclipse.jst.server.generic.runtime.weblogic81" | description="%wl81serverTypeDescription" | launchConfigId="org.eclipse.jst.server.generic.core.ExternalLaunchConfigurationType" | behaviourClass="org.eclipse.jst.server.generic.core.internal.ExternalServerBehaviour" | name="%wl81serverTypeName" | hasConfiguration="false" | startTimeout="75000" | stopTimeout="30000" | launchModes="run, debug"> | </serverType> | <serverType | runtime="true" | class="org.eclipse.jst.server.generic.core.internal.GenericServer" | id="org.eclipse.jst.server.generic.weblogic90" | initialState="stopped" | supportsRemoteHosts="false" | runtimeTypeId="org.eclipse.jst.server.generic.runtime.weblogic90" | description="%wl90serverTypeDescription" | launchConfigId="org.eclipse.jst.server.generic.core.ExternalLaunchConfigurationType" | behaviourClass="org.eclipse.jst.server.generic.core.internal.ExternalServerBehaviour" | name="%wl90serverTypeName" | startTimeout="75000" | stopTimeout="30000" | hasConfiguration="false" | launchModes="run, debug"> | </serverType> | <serverType | runtime="true" | class="org.eclipse.jst.server.generic.core.internal.GenericServer" | id="org.eclipse.jst.server.generic.jboss323" | initialState="stopped" | supportsRemoteHosts="false" | runtimeTypeId="org.eclipse.jst.server.generic.runtime.jboss323" | description="%jboss323serverTypeDescription" | launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType" | behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour" | name="%jboss323serverTypeName" | startTimeout="50000" | stopTimeout="15000" | hasConfiguration="false" | launchModes="run,debug"> | </serverType> | | <serverType | runtime="true" | class="org.eclipse.jst.server.generic.core.internal.GenericServer" | id="org.eclipse.jst.server.generic.jboss402" | initialState="stopped" | supportsRemoteHosts="false" | runtimeTypeId="org.eclipse.jst.server.generic.runtime.jboss402" | description="%jboss402serverTypeDescription" | launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType" | behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour" | name="%jboss402serverTypeName" | startTimeout="50000" | stopTimeout="15000" | hasConfiguration="false" | launchModes="run,debug"> | </serverType> | | <serverType | runtime="true" | class="org.eclipse.jst.server.generic.core.internal.GenericServer" | id="org.eclipse.jst.server.generic.jonas414" | initialState="stopped" | supportsRemoteHosts="false" | runtimeTypeId="org.eclipse.jst.server.generic.runtime.jonas414" | description="%jonas414serverTypeDescription" | launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType" | behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour" | name="%jonas414serverTypeName" | startTimeout="50000" | stopTimeout="15000" | hasConfiguration="false" | launchModes="run,debug"> | | </serverType> | | </extension> | <!-- UI Components--> | <extension | point="org.eclipse.wst.server.ui.wizardFragments"> | <fragment | id="org.eclipse.jst.server.generic.runtime" | typeIds="org.eclipse.jst.server.generic.runtime.weblogic81" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerRuntimeWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.server" | typeIds="org.eclipse.jst.server.generic.weblogic81" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.runtime" | typeIds="org.eclipse.jst.server.generic.runtime.weblogic90" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerRuntimeWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.server" | typeIds="org.eclipse.jst.server.generic.weblogic90" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.runtime" | typeIds="org.eclipse.jst.server.generic.runtime.jboss323" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerRuntimeWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.server" | typeIds="org.eclipse.jst.server.generic.jboss323" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.runtime" | typeIds="org.eclipse.jst.server.generic.runtime.jboss402" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerRuntimeWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.server" | typeIds="org.eclipse.jst.server.generic.jboss402" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.runtime" | typeIds="org.eclipse.jst.server.generic.runtime.jonas414" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerRuntimeWizardFragment"/> | <fragment | id="org.eclipse.jst.server.generic.server" | typeIds="org.eclipse.jst.server.generic.jonas414" | class="org.eclipse.jst.server.generic.ui.internal.GenericServerWizardFragment"/> | </extension> | <extension point="org.eclipse.wst.server.ui.serverImages"> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/weblogic.gif" | typeIds="org.eclipse.jst.server.generic.runtime.weblogic81"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/weblogic.gif" | typeIds="org.eclipse.jst.server.generic.weblogic81"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/weblogic.gif" | typeIds="org.eclipse.jst.server.generic.runtime.weblogic90"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/weblogic.gif" | typeIds="org.eclipse.jst.server.generic.weblogic90"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/jonas.gif" | typeIds="org.eclipse.jst.server.generic.runtime.jonas414"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/jonas.gif" | typeIds="org.eclipse.jst.server.generic.jonas414"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/jboss.gif" | typeIds="org.eclipse.jst.server.generic.runtime.jboss323"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/jboss.gif" | typeIds="org.eclipse.jst.server.generic.jboss323"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/jboss.gif" | typeIds="org.eclipse.jst.server.generic.runtime.jboss402"/> | <image | id="org.eclipse.jst.server.generic.image" | icon="icons/obj16/jboss.gif" | typeIds="org.eclipse.jst.server.generic.jboss402"/> | </extension> | | <!-- Define Classpath handler for all generics --> | <extension point="org.eclipse.wst.server.core.runtimeTargetHandlers"> | <runtimeTargetHandler | id="org.eclipse.jst.server.generic.runtimeTarget" | runtimeTypeIds="org.eclipse.jst.server.generic.runtime.*" | class="org.eclipse.jst.server.generic.core.internal.GenericServerRuntimeTargetHandler"/> | </extension> | <!-- Server type definitions --> | <extension point="org.eclipse.jst.server.generic.core.serverdefinition"> | <serverdefinition id="org.eclipse.jst.server.generic.runtime.weblogic81" definitionfile="/servers/weblogic81.serverdef"> | </serverdefinition> | <serverdefinition id="org.eclipse.jst.server.generic.runtime.weblogic90" definitionfile="/servers/weblogic90.serverdef"> | </serverdefinition> | <serverdefinition id="org.eclipse.jst.server.generic.runtime.jboss323" definitionfile="/servers/jboss323.serverdef"> | </serverdefinition> | <serverdefinition id="org.eclipse.jst.server.generic.runtime.jboss402" definitionfile="/servers/jboss402.serverdef"> | </serverdefinition> | <serverdefinition id="org.eclipse.jst.server.generic.runtime.jonas414" definitionfile="/servers/jonas.serverdef"> | </serverdefinition> | </extension> | </plugin> | ========================================== filename: [buildfiles/jboss402.xml] | <project name="deployextension" default="deploy.j2ee.web" basedir="."> | <target name="deploy.j2ee.web"> | <jar destfile="${module.name}.war"> | <zipfileset dir="${module.dir}"> | <include name="**/*.*"/> | <exclude name="**/*.war"/> | </zipfileset> | </jar> | <move file="${module.name}.war" todir="${server.publish.dir}"/> | </target> | | <target name="deploy.j2ee.ejb"> | <jar destfile="${module.name}.jar"> | <zipfileset dir="${module.dir}"> | <include name="**/*.*"/> | <exclude name="**/*.java"/> | </zipfileset> | </jar> | <move file="${module.name}.jar" todir="${server.publish.dir}"/> | </target> | <target name="deploy.j2ee.ear"> | <jar destfile="${module.name}.ear"> | <zipfileset dir="${module.dir}"> | <include name="**/*.*"/> | <exclude name="**/*.java"/> | </zipfileset> | </jar> | <move file="${module.name}.ear" todir="${server.publish.dir}"/> | </target> | | <target name="undeploy.j2ee.web"> | <delete file="${server.publish.dir}/${module.name}.war"> </delete> | </target> | <target name="undeploy.j2ee.ejb"> | <delete file="${server.publish.dir}/${module.name}.jar"> </delete> | </target> | <target name="undeploy.j2ee.ear"> | <delete file="${server.publish.dir}/${module.name}.ear"> </delete> | </target> | | </project> | ========================================== filename [servers/jboss402.serverdef] | <?xml version="1.0" encoding="UTF-8"?> | <tns:ServerRuntime | xmlns:tns="http://eclipse.org/jst/server/generic/ServerTypeDefinition" | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | xsi:schemaLocation="http://eclipse.org/jst/server/generic/ServerTypeDefinition ServerTypeDefinitionSchema.xsd " | name="JBoss 4.0.2" version="v4.0.2"> | <property id="serverRootDirectory" | label="%ApplicationServerDirectory" | type="directory" | context="runtime" | default="C:/dev/apps/jboss402" /> | <property id="serverAddress" | label="%serverAddress" | type="string" | context="server" | default="127.0.0.1" /> | <property id="port" | label="%serverPort" | type="string" | context="server" | default="80" /> | <property id="serverConfig" | label="%jboss402serverConfig" | type="string" | context="server" | default="default" /> | <property id="classPath" | label="%serverclassPath" | type="directory" | context="runtime" | default="C:/dev/apps/jboss402" /> | | <port> | <no>${port}</no> | <name>Http</name> | <protocol>http</protocol> | </port> | | <module> | <type>j2ee.web</type> | <publishDir>${serverRootDirectory}/server/${serverConfig}/deploy</publishDir> | <publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference> | </module> | <module> | <type>j2ee.ejb</type> | <publishDir>${serverRootDirectory}/server/${serverConfig}/deploy</publishDir> | <publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference> | </module> | <module> | <type>j2ee.ear</type> | <publishDir>${serverRootDirectory}/server/${serverConfig}/deploy</publishDir> | <publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference> | </module> | | <project> | <classpathReference>jboss.project</classpathReference> | </project> | | <start> | <mainClass>org.jboss.Main</mainClass> | <workingDirectory>${serverRootDirectory}/bin</workingDirectory> | <programArguments>-c ${serverConfig}</programArguments> | <vmParameters>-Dprogram.name=eclipse.exe -Djava.endorsed.dirs=${serverRootDirectory}/lib/endorsed</vmParameters> | <classpathReference>jboss</classpathReference> | </start> | | <stop> | <mainClass>org.jboss.Shutdown</mainClass> | <workingDirectory>${serverRootDirectory}/bin</workingDirectory> | <programArguments>-S</programArguments> | <vmParameters></vmParameters> | <classpathReference>jboss</classpathReference> | </stop> | <publisher id="org.eclipse.jst.server.generic.antpublisher"> | <publisherdata> | <dataname>build.file</dataname> | <datavalue>/buildfiles/jboss402.xml</datavalue> | </publisherdata> | <publisherdata> | <dataname>target.publish.j2ee.web</dataname> | <datavalue>deploy.j2ee.web</datavalue> | </publisherdata> | <publisherdata> | <dataname>target.publish.j2ee.ejb</dataname> | <datavalue>deploy.j2ee.ejb</datavalue> | </publisherdata> | <publisherdata> | <dataname>target.unpublish.j2ee.web</dataname> | <datavalue>undeploy.j2ee.web</datavalue> | </publisherdata> | <publisherdata> | <dataname>target.unpublish.j2ee.ejb</dataname> | <datavalue>undeploy.j2ee.ejb</datavalue> | </publisherdata> | <publisherdata> | <dataname>target.publish.j2ee.ear</dataname> | <datavalue>deploy.j2ee.ear</datavalue> | </publisherdata> | <publisherdata> | <dataname>target.unpublish.j2ee.ear</dataname> | <datavalue>undeploy.j2ee.ear</datavalue> | </publisherdata> | </publisher> | | | <classpath id="jboss.project"> | <archive path="${classPath}/server/${serverConfig}/lib/javax.servlet.jar" /> | <archive path="${classPath}/client/jboss-j2ee.jar" /> | <archive path="${classPath}/server/${serverConfig}/lib/activation.jar" /> | <archive path="${classPath}/server/${serverConfig}/lib/mail.jar" /> | </classpath> | | <classpath id="jboss"> | <archive path="${classPath}/server/${serverConfig}/conf"/> | <archive path="${classPath}/bin/run.jar" /> | <archive path="${classPath}/server/${serverConfig}/lib/log4j.jar"/> | </classpath> | | <jndiConnection> | <providerUrl>jnp://${serverAddress}:1099</providerUrl> | <initialContextFactory>org.jnp.interfaces.NamingContextFactory</initialContextFactory> | <jndiProperty> | <name></name> | <value></value> | </jndiProperty> | </jndiConnection> | | </tns:ServerRuntime> | | Last but not least, I just reused the jboss323 icon within the directory icons/obj16/jboss.gif for the jboss402. Copying these files to the plugins\org.eclipse.jst.server.generic.serverdefinitions_0.7.0 directory and restarting eclipse with the -clean option shoudl do the job. masdeval, schu77: if this configuration works for you too, we should consider finding an appropriate WIKI place and publish an appropriate entry or maybe mail these files to the Webtools dev mailing list so that it might get included within the final version 0.7 distribution of the webtools project. greetings Sascha View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3884246#3884246 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3884246 |