Context root in Glassfish and domain name - eclipse

Coming from a Microsoft background with mostly experience in IIS, I'm having difficulty in understanding some fundamental concepts when it comes to using Glassfish and publishing apps using domain names. I am using Java EE 7, Glassfish 4 and Eclipse Kepler running on Windows Vista.
When I run the Glassfish admin console, I notice under Applications, you can set the "Context root" for the app. So in Eclipse, if my project is called com.mycompany.myapp, the context root would be /com.mycompany.myapp
If I then type in the following url in my browser, I get the html content:
http://localhost:8080/com.mycompany.myapp/default.html
What I really want is to use a domain name. So the url above should look like this:
http://www.mydomain.com/default.html
It isn't clear to me what I have to do to make this happen.

The context root is only the context part of the URL, it can't change the server part of the URL. In general, if you want a public URL to point to some web application, you need something which maps the URL to the real URL of your application server. This has in most cases nothing to do with the backend side but with the configuration of a load-balancer (e.g. Apache) or proxy in front of your application server. This may also be hosted by an external provider.
Anyway, you can change the context root for applications on GlassFish either via the admin GUI or you can add a glassfish-web.xml in your WEB-INF dir which looks like this:
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD
GlassFish Application Server 3.1 Servlet 3.0//EN"
"http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<context-root>/your_desired_context_root</context-root>
</glassfish-web-app>

Related

Too many redirects issue in local host (IIS,ColdFusion 2018)

I am setting up ColdFusion 2018 Application server with IIS 10. But getting too many redirects issue.
I have tried from square one.. Below are the things I did.
Installed CF 2018 developer
Configure IIS (Windows 10) with CF 2018 using wsconfig.
Created a simple “index.cfm” and tried to access. This page contains just cfset and cfoutput.
got 404 error.
updated “enable 32-bit applications” to false in IIS application pool
404 error resolved, but getting “Too Many redirects issue”
enabled developer tools in IE and checked.
getting 302 status code and it seems index.cfm is redirecting to itself.
Not sure what to do now? Is there anything I missed in setting up IIS with CF 2018 server?
You can resolve this error by making sure that the two required components of IIS are installed on your system. Namely:
ISAPI Extensions
IIS Metabase and IIS 6 configuration compatibility.
First, start the program called Windows Features. You will find Windows Features under Control Panel –> Programs and Features.
When the Windows Features starts, navigate through the features hierarchy under Internet Information Services and select the two features:
(a) ISAPI extensions and
(b) IIS Metabase and IIS 6 configuration compatibility.
Configuring IIS for ColdFusion:
You will have to run the Web Server Configuration Tool that comes with ColdFusion to configure IIS so that all .CFM files are mapped to be handled by ColdFusion.
The following text is directly from the ColdFusion installation guide:
1)Start the Web Server Configuration Tool by selecting Start > Programs > Adobe > ColdFusion 9 > Web Server Configuration Tool.
2)Click Add.
3)In the Server pop-up menu, select the host name and the server or cluster name to configure. In the ColdFusion server configuration, the server name is always coldfusion. Clustering support is not available on the server configuration.
Note: The server or cluster does not have to reside on the web server computer.
4)In the Web Server Properties area, select IIS and specify the website. For IIS, you typically specify All.
5)Select the Configure web server for ColdFusion applications option, and click OK.
Note: Omitting the previous step causes your web server to serve ColdFusion source code.
6)Copy the CFIDE and cfdocs directories from cf_root/wwwroot to your web server root directory. In addition, copy your application’s CFM pages from cf_root/wwwroot to your web server root directory. In the multiserver configuration, these files are under the jrun_root/servers/cfusion/cfusion-ear/cfusion-war directory.
if you face too many redirects then just enable 32-bit applications to true.
refer this link:
https://community.adobe.com/t5/coldfusion/strange-iis-redirect-issues-leads-to-jakarta-isapi-redirect-dll/td-p/4239297?page=1

How to deploy non-ear website in jboss

I have a website comprising of a server and client. The server is an EAR, and I'm using JBoss to deploy it. The frontend is a series of html/js/css files that call into the backend via ajax.
I can deploy the frontend to an apache (2.2) server, and it works fine, however, I have a requirement that they both be on the same port (with different contexts). How do I deploy my static files to jboss in their own context? It also needs to be able to use mod_rewrite (or something similar).
Thanks
You could use Apache as the front end web server for the Jboss app server behind it. You can deploy all your content to Jboss and configure Apache to manage it.
Or you can use Apache to serve the static content and still use it as the front end for Jboss, configuring Apache to map your Jboss port to Apache. You can configure it to use different contexts if you need to.
Take a look here

How to call a servlet on Glassfish server in Eclipse

I am trying to call a servlet form my android application in eclipse. I have to use the Glassfish application server(the servlet is in a different Mavan project). I had a few questions:
How to start a glassfish server in Eclipse?
What URL do I pass in the HttpPost() method?
Thank you.
There is the Servers view in which you can add you GF instance. However, this is not mandatory and you can run it from the command line (asadmin).
If your GF runs locally, the URL will start with
http :// localhost/webappName/servletPath
localhost or 127.0.0.1
I'd advise you to get a training as the more you'll progress, the more questions you'll have.

How I can deploy my GWT application on www

I created my first Java EE application (GWT + Hibernate). I want deploy my application on a Tomcat web server.
Could you give me a step by step tutorial?
You can start with Google App Engine + GWT tutorial if you are trying out deploying into Google Cloud - https://developers.google.com/web-toolkit/doc/latest/tutorial/appengine
This question is massive so I will try to bring it down to some steps that need some research to implement.
1st. You created an application using GWT and Hibernate. That means that you need some kind of a web server that understands java and can re-write the logic from java to javascript (for the clientside), and also connect to the database on the serverside and retrieve the data for the client.
This web server is tomcat so what you need is:
A computer that will work as a server. This could be your own machine or some server you can buy as a hosting solution. Buying something like this requires research and effort on your part and cannot be explained here.
A version of Tomcat or Resin or any other web server that understands java
A domain name. These can be bought from sites like this one, but there are some free ones around the web. They require static ips that is you cannot use them from a home line that changes ips. Even without a domain name you can host your site on the server but you need to access it by writing the machine's ip instead. - optional - A temporary solution would be to use some kind of dynamic dns service on your router.
After having set up tomcat (you might want to give port 80 to tomcat) and the server you can host your application by uploading the war file. You can make a war file from gwt by following the instructions here
To upload the war file you can use the tomcat manager interface, or you can connect to the server and place it manually in the folder used for the web applications.
I know that each step propably needs as much if not more explanation by I hope I cleared the area a little bit here.

Deploying .ear file (contains rest services)

I have a few questions about deploying my .ear file (was provided to me, the file itself should not be the problem). I set up jBoss application server jboss-6.0.0.Final and was able to run a simple hello world app to ensure the server was functioning properly.
I was told to place the .ear file in /server/default/deploy so I did. When I ran jboss (through /bin/run.bat) I got no errors related to deploying the ear file.
Question
Is this all the software I need (jBoss)? Do I also need something like Apache or tomcat?
The .ear file contains RESTful service calls that should return xml. Will these be deployed (accessible through a jQuery ajax call after the server (jboss/bin/run.bat) is executed?
Currently when I try to make the calls, the resources do not seem to exist.
Thanks in advance for taking the time to help.
JBoss AS ships with an embedded Tomcat as a servlet container so you really don't need that anymore. Apache Web Server is NOT required for your .EAR to be deployed properly.
To answer your questions
No other software is needed to deploy the EAR. You simply copy your EAR file to deploy directory (which you have rightfully done so).
If your EAR contains RESTFul services, they will be deployed and you can access them using any client including jQuery or even a simple browsers. The trick is to know the access URL to the RESTFul services.
If you have difficulty identifying the URL for accessing your RESTFul services please refer [1] for more information.
Hope this helps.
Good luck!
[1] https://docs.jboss.org/author/display/AS7/JAX-RS+Reference+Guide
I can answer the first question. You need apache if you want to serve static content or you need to isolate the traffic (say keep apache in the dmz and then use apache to proxy traffic to the internal jboss servers). tomcat is bundled along with jboss, so you do not need it.