There is a war deployed in JBOSS currently. If I want to figure out the context path for the WAR in Jboss, where should I be looking at? Server.xml?
If your application is packaged as a WAR file then you can create jboss-web.xml under WEB-INF folder of WAR file and specify the context-root in jboss-web.xml like this -
<jboss-web>
<context-root>MyWebAppContext</context-root>
</jboss-web>
If your application is packaged as an EAR file then you can specify context-root in META-INF/application.xml of EAR like this
<module>
<web>
<web-uri>MyWAR.war</web-uri>
<context-root>MyWebAppContext</context-root>
</web>
</module>
In Jboss 4.2.3 go to your jmx-console and under jboss.web you will find the application and its context path, for example:
J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/jmx-console
has the context path "jmx-console/"
Related
We are deploying an ear file on Tomee server. We have placed the ear file in tomee/apps folder.
EAR file consists of 1 ejb jar. When we start tomee, deployment is successful without any errors. The ejb has a listener class. How do we tell the EAR to invoke the listener class? Here is my application and web xml but do not see log messages printed from the Listener class. So I know the listener class its not called. Can anyone help? Totally new in this area and migrating from weblogic to tomee. Thanks
myproject/src/main/application/META-INF/application xml
<module>
<ejb>abc-ejb.jar</ejb>
</module>
myproject/src/main/webapps/WEB-INF/web xml
<listener>
<listener-class>com.xyz.listener.startup.AbcListener</listener-class>
</listener>
I want to deploy an application outside the "deploy" folder of JBoss in JBoss 6.0.0
my folder names must be specified in URL syntax. For example, to specify that C:/rev/deploy be used for deployment,inside deploy folder I placed my war file i.e,ORNC.war so I edited my profile.xml as
<property name="applicationURIs">
<list elementClass="java.net.URI">
<value>${jboss.server.home.url}deploy</value>
<!-- Add your own deploy folder -->
<value>file:///C:/rev/deploy</value>
</list>
</property>
After this I restarted my server. Now I am trying accessing: http://localhost:8000/rev/deploy/ORNC,
I am getting an error resource not available. How can I acess it? Please help me
Finally I got the answer my question ,Actually we need to create a jboss-web.xml file with below coding
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/rev/deploy/ORNC</context-root>
</jboss-web>
After that I placed this xml file in my WEB-INF folder of my WAR file.Now I can access my war file through http://localhost:8080/rev/deploy/ORNC
By referring this I get an solution for my question
JBoss 7: how to change a WAR context root
Thanks for Mr.simkam and Stackoverflow.
I have a spring boot web application that deploys as a WAR. Right now when I deploy it to my Tomcat 7 server, it uses the name of the war file as the context, such as /myartifactid-1.5.4.SNAPSHOT/. I want to specify the context-path, but
server.contextPath=/mywebapp
seems to only work for embedded tomcat. I've added a META-INF/context.xml with only this
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="false" path="/mywebapp" />
but that hasn't had any effect.
EDIT: This is NOT a spring-boot issue, but instead related to how NetBeans behaves differently from Eclipse. NetBeans apparently recognizes the context path parameter in context.xml, but Eclipse doesn't. In Eclipse you have to modify the Web Projects Settings to set the context path.
Changing Tomcat context path of web project in Eclipse
Since you are packaging your Spring Boot application as a war (as opposed to a jar with an embedded tomcat container) the context path will be the name of the war.
For example if you name your packaged application mywebapp.war and you place it under Tomcat's webapps, it will be available under /mywebapp
when the war does not have the same name with the project, the application will not be accessible via the context path on the tomcat,
to fix this you need to go to the POM.xml change the name of package to match the context path name
server.servlet.context-path=/virtualcard
<groupId>com.test.csc.virtualcard</groupId>
<artifactId>virtualcard</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>virtualcard</name>
then the war will be: virtualcard.war
I want to deploy a .war file to Jetty by setting up a context that points to my external .war (outside webapps folder). I know how to do this in Tomcat, but I can't figure out how to do this for Jetty 9.
In Tomcat I placed an .xml file to configure my context in $CATALINA_HOME/conf/Catalina/localhost :
<?xml version='1.0' encoding='utf-8'?>
<!-- Context fragment for deploying ServletExample.war -->
<Context path="/CurrencyServlet" docBase="/Users/macbook/Desktop/School/Java/Temp/CurrencyServlet.war" debug="0" privileged="true"/>
Can anyone provide a simple example for Jetty 9?
Have a look at the provided $jetty_home/webapps/test.xml file. In jetty9 you can configure your webapps, etc. by placing a ContextProvider config file in $jetty_home/webapps.
Have a look at the docs: http://www.eclipse.org/jetty/documentation/current/configuring-contexts.html
This is how you configure the path to your webapp:
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/test</Set>
We have ear that depends on war file.
We use web configuration.
I put war file to <jboss_home>/server/web/deploy directory.
And I put ear file to <jboss_home>/server/web/deploy/deploy.last directory.
But ear starts prior to war.
Why?
I use a similar configuration to what you describe, though I put all the apps I want to deploy first in deploy/myapps and all the ones to deploy afterwards in deploy/myapps.last. This works correctly for me on JBoss 5.1.2.
Although I can't explain why it isn't working for you, I can offer an alternative solution. You can make the EAR declare a dependency on the WAR and JBoss will then ensure the WAR is deployed first.
First, add a file called aliases.txt into the META-INF directory of your WAR. This file should just contain a single line with an arbitrary name / identifier for your WAR. For example, if you have mywebapp.war, your META-INF/aliases.txt file could contain 'mywebapp'. It just needs to be something that won't clash with any other aliases declared by other apps deployed on the same server.
Next, add a jboss-dependency.xml file to the META-INF directory of your EAR, containing the following (subsituting 'mywebapp' for the alias you created above):
<dependency xmlns="urn:jboss:dependency:1.0">
<item whenRequired="Real" dependentState="Create">mywebapp</item>
</dependency>
This should ensure the WAR is deployed before the EAR.
Also, if you try to deploy the EAR without the WAR being present, JBoss will log a clear deployment error message telling you about the missing dependency.