GWT and tomcat development - mysql

I been playing around a bit with GWT using the built in jetty server, purely in development mode, and I am now wondering if the framework will be fit for purpose for a project we are starting shortly.
We need to deploy on a tomcat server, and we need to be able to use a mysql connection pool on that tomcat server to populate the domain model of the GWT application. So we wont really be using the Jetty server built into jetty at all. So, here's the questions:
Is there any way of running the development mode up against Tomcat rather than the built in server? If no, what is the alternative? Debugging/run on a external server?
I've tried configuring the run on external server, but amending the arguments, so it doesnt use the built in jetty instance and it deploys to my tomcat webapps directory. But files from the /war folder seems to be missing. Can anybody explain or point me to a resource documenting this?
Have I overlooked something in GWT that will make it pain full to use a JNDI datasource as made available from tomcat?
would it actually be possible to use the tomcat JDNI

GWT places no limitation on what you can do on server, so unless there is a specific bug somewhere you should be able to use Tomcat JNDI.
As for running the GWT development mode against tomcat, yes it is possible. GWT Developer Guide covers this question. GWT eclipse plugin makes it even easier. You can just right-click on your project, select "Run As", and then select "Web Application (running on external server)".

Related

Give me some recommendation about JBoss and MySQL using Openshift Tech

I've created my first application using Openshift Tech. It's a Java Web Application running on a JBoss at Openshift and uses MySQL 5.5 as its database. And I have to deploy by it using the war file (I don't know how to do it the normal way).
So anyone can tell me: Should I create a local database or use online database? And is there another way to deploy my Java app not using the war file?
I would suggest that you check out the OpenShift Developer Center (https://developers.openshift.com), specifically this link (https://developers.openshift.com/en/jbossas-overview.html) about using jboss. Make sure you read all of the sections, specifically the Deployment Options, and the Datasources links. If you are interested in just being able to do a "git push" to deploy your code, you should create a new jboss application on OpenShift, and do a "git clone" of the code and check out how it's setup, it is using the Maven project structure, which is pretty common.

cas jasig using oracle data source on windows

is there any way that can help cas settings to use the data source oracle on windows
in my company will apply singgle singgle sign on and logout, I've been trying for 5 days, and until now have not been successful.
I've tried several ways
I use
Tomcat 7.0
Java 1.7
cas server 3.5.2
Tomcat 7.0
Java 1.7
cas server 3.5.2
I downloaded cas server 3.5.2
extract cas-server-3.5.2
copy cas-server-webapp-3.5.2.war into tomcat webapps
cas has been successfully deployed, and can be accessed
and then I do not understand anymore, how do I get the authentication process can use oracle database
sorry my english is not good
thank you
There's a few things you need to do:
First of all, if you haven't downloaded and included the Oracle JDBC Driver library (http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html) then you have to do that.
Secondly, you need to configure the JDBC plugin: https://wiki.jasig.org/display/CASUM/JDBC
These instructions (and the preferred method of customizing & building CAS) uses the Maven Web Overlay method. This has the advantage that you deploy lots of un-necessary libraries that you aren't using.

Open Source Application Server Solution

A project with the following technologies and components has surfaced: to up a Web stack solution initially composed with Ubuntu, JDK, JBoss, Spring MVC 3.0+, and MySQL.
In planning this project, I have been struggling to find answers to the following questions for first steps, best practices, and sequence:
1) Does the JDK (and JBoss) need to be installed as ‘root’? (I have seen articles that mention it is not a good idea to operate in root unless absolutely necessary due to the fatal consequences.)
2) Does Ubuntu need to be installed as a Server in order to accomplish all this, or can it also be installed as a Desktop? I have not been able to determine if having a JBoss and MySQL need to be installed on top of Linux as a server.
3) Does Maven need to be used within Spring STS in order to get JBoss, and MySQL (and in the future Hibernate) to work successfully together?
4) My intent is to install in this order: a) Ubuntu -> b) Java -> c) JBoss -> d) Spring STS -> and e) MySQL. Are there any blatant conflicts in this sequence?
JBoss will require Java (recommend Java 7) before it will do anything. I don't think it really "installs" per-say, but rather just unpacks to some directory (even if you install from the package manager, it just really extracts itself). I question your need for Spring since JBoss and Java EE in general really does everything Spring does, and better now-a-days. Unless you have a specific requirement for Spring, I'd question this extra dependency.
For linux - in a high level, any OS can be a "server", all it needs is to be capable of serving things (web pages, ssh connections, etc). In M$ world, different "levels" of the OS have been specially designed based on anticipated task/workload. So for example, while Windows 7 can indeed run as a server, it was not designed for it and therefore may not be optimized or include helper utilities and tools to make life easier as a sys admin of the system. Windows Server on the other hand does include all the "normal" server tools and lots of goodies to make maintaining and setting the server up easier.
In linux land, this is no such thing. Linux is the kernel that talks back and forth with the bare metal, etc... and Distro makers will take that and build an OS around the kernel, basically just attaching any packages they feel their distro needs... such as wget, or cat, or any other standard userland apps, plus some non-standard such as mysql or java or whatever they want.
Now, some distributions of linux will tailor themselves at being "server" ready, while others will tailor themselves at being a desktop OS. The difference? It's really just whatever default packages the distribution maker decides to include or not. For example, the overwhelming majority of linux servers are run completely headless, and therefore there is absolutely no reason to have X11 and a huge bloated GUI environment installed and/or running on that system... it's pointless. Also, an "average joe" user does not need MySQL installed by default on his desktop system since it would only bloat his system and he likely won't ever use it.
So basically it comes down to default installed packages.
Some linux server distros take this further and exercise extreme caution when making updates, patches, or new releases in the name of stability and security, while on the other hand most desktop distros are more haphazard with their updates since if it breaks a home users web browser, it's probably not a huge deal... but if a server update breaks the webserver application stack, now that's a serious problem.
So you'll find server OS's like CentOS (based on upstream RHEL) are extremely slow to bring in the "latest and greatest" features that desktop OS's get early on. Their goal is high security and long term stability.
Now, for Ubuntu. While I certainty know a lot of folks run Ubuntu as their server OS choice (partly due to Amazon choosing Ubuntu as the default linux VM for their ECS cloud), but I'd really question this. Ubuntu is not focused on being a server. It's focused on being a great all-around desktop oriented OS. Yes the LTS version is meant for long term stability, but it's based out of a desktop OS, so it's still not the focus.
IMHO, I'd go with CentOS because it's free and completely binary compatible version of RHEL - and RHEL is the de-facto standard for enterprise-grade linux servers. Be aware though, the RHEL way of doing things is a bit different than the debian way -- so there is no apt-get, you must use yum install instead. Startup scripts are different and some ways of doing things are different, but really, once you know linux, you know linux.
EDIT: Also check into Jenkins - its a free opensource continuous integration system that runs on JBoss or Tomcat or any other container, and can automagically pull your code from a repo (github, git, svn, etc) and compile/package it then push it to live deployment. You setup your ANT or Maven build scripts, and it can kick off on a schedule or however you configure it.
EDIT EDIT: I'd also recommend using OpenJDK -- as it's likely included in your package manager (for just about every disto) and will be more updated than the oracle version if it's in your package manager too. I've found most "server" distros will have OpenJDK 7 while only having Oracle java 6 in their package managers. Also, installing it via the package manager will enable you to keep it updated a ton easier.
Installed as root, why not? Run as root, probably not a good idea.
If you want a desktop, install a desktop distrib. If you want a server, install a server distrib. This doesn't change what can and can't be run in the OS. It only changes what is installed by default.
Maven is a build tool. JBoss doesn't care how you build your app. All it cares about is if the application you deploy is a valid Java EE application.
No. You need an OS, so Ubuntu must come first. JBoss and (AFAIK) Spring STS need a JRE to run, as they're Java applications, so Java should be installed before them. MySQL is independent of JBoss, STS and Java, so you can install it whenever you want.
Note that if you're struggling just with this installation part, be prepared to suffer with the rest. Building a Java EE webapp is not a piece of cake, and you should probably find some experienced developer to help you, as it seems you're only beginning with Java.

Flash Application with local database (not sqlite, not air)

I would like to have a Flash Application (not air) to connect to a local database.
Air is not only getting unsupported by Adobe in LINUX but besides, it has serious problems and miss implementation with SQLite.
So we want to connect to a local MySQL database.
This application should be simple, so we do not want to also have an unnecessary web server (also local) to make a middle communication between the flash app and the MySQL server.
There is this driver that allow to communicate Flash with MySQL
http://code.google.com/p/assql/
Question is:
Is this the best approach?
Would it be any problem using this approach when installing the whole application to each client? (because we also in the installation should install a MySQL server).
A MySQL SERVER is called a SERVER for a reason: It is meant to be installed on servers, not on clients. So the answer to your question is:
1) No, this is not the best approach. Not even close. You would be better off using a SQLite database (however shitty you may think it is)
2) Yes. Nobody would like installing a MySQL server on their computers just for the sake of running your application. Think of casual (non-expert) users who would need to install and configure the server just for running your app. That is the very REASON why they developed SQLite and so many languages support it.
You should check out http://code.google.com/p/air-sqlite/ for sqlite access in AIR (I don't know if this is the same as the inbuilt code or not, so just check that out)

Bundling MySQL with an application

There are alot of applications like MAMP, WAMP, etc. That come with a version of mysql that needs no installation and can be turned on and off easily. I am trying to create a web based application that will use a mysql database, where do you get mysql to bundle and how is it done so the user doesn't have to install it?
you can get it mysql
http://dev.mysql.com/downloads/
you can used php, ruby (rubyonrails) or java for developed application. in the case php install xampp.
MAMP, WAMP, etc. all have a bunch of configuration that is already set up for them. Essentially they've installed MySQL and everything else included under a single directory that doesn't rely on anything outside that directory and then zipped it up together. I'm not sure exactly what you're trying to do, but that really seems like overkill. May I suggest checking out sqlite? It's designed for bundling and embedding and will be quite a bit easier to deal with.
Are you truly creating a Web Based app or are you wanting to create a desktop application using web scripting languages?
If you are creating a web app, you shouldn't need to bundle MySQL since when you deploy to your hosting environment it should already be in place. If you truly need to package everything you'd be best off offering your software as a virtual machine appliance with the appropriate services already configured and running.
If you are creating a desktop app, that's a whole other issue.