wicket: changes does not appear after page reload - java

I have created java Project with wicket in eclipse. the application works fine. The problem is, when I change the java code in the project and reload the page to see these changes, the changes do not appear.
The changes appear only when I run the project again (right mouse click on the project -> run as -> java application). Is there a way to see the changes after reloading the page without needing to run the project again every time?

Use debug-as instead. This will instruct eclipse to use hotswap and update your running application. Note that you'll still need to restart your application often since hotswap doesn't support all class file changes. For that you'll probably need to use a class-reloading solution, such as JRebel, or use the redeploy feature of a container.

Are you using Wicket >= 1.5? You might also be stumbling over the page version parameter that Wicket appends to every URL of a stateful page, e.g. ?5
If you simply reload the page with this parameter, the page will be rendered again, but not constructed new from the scratch, which might also lead to your changes being ignored.
It's quite annoying, but to get a proper reload of the page, you need to remove the parameter and hit enter.

Related

IDEA GWT compiler and backend issue

My project uses GWT. Our team write code under IDEA And every time when I change something on backend I have to recompile both GWT and server side code to be putted on artifact folder. It is not very good situation. So I want to know if it is possible to setup project/IDEA/GWT in such way that we would not need to recompile GWT every time regardless of whether we have changed GWT or not.
We are using GWT with Intellij IDEA as well.
For server side changes, we have to restart the backend server in IDEA, but we don't have to recompile GWT code.
You can keep the GWT code server running all the time (in super mode):
And the URL to check is http://127.0.0.1:9876/, and then put the "Dev Mode On" button in your bookmark bar.
To enable latest code, you only need to click this button when the application page is opened. It will apply the latest GWT code into your application page, which is also pretty fast.

Unable to add Servlet in eclipse

I am setting up a simple server project in eclipse (using a Glassfish as a server if it's relevant). I cannot seem to add a Servlet though. Unlike another question I've seen where a project cannot be selected I can select the project, but the finish or next buttons remain disabled. I tried manually creating a class that extends HttpServlet ahead of time and selecting but it the finish and next buttons are still disabled:
I am running Eclipse 4.3, and I have tried starting it with -clean. Beyond that I'm not sure what to try.
EDIT:
As I said I orginally tried to create a new class using the dialog and only when that did not work did I create my WebService class. Here is what I orignally tried (using NewWebService as the name since WebService now already exists)
Although the question is already marked as answered. There could be other reason to have "next" or "finish" buttons grayed out in "Create Servlet" Dialog.
This could happen, if the PROJECTNAME/WebContent/WEB-INF/web.xml file is corrupt by i.e. misspelled tags or attributes.
#Fr33dan: Check if dynamic web Module is checked in in your project facets.Also is this a maven project?
In the screen shot you provided it seems like you are checking the box Use an existing Servlet class or JSP. Just uncheck it and it should work fine, you will be able to create new class.

IntelliJ productivity tips running tomcat

I'm developing using IntelliJ 11u on a spring mvc application using tomcat.
I tried the maven jetty plugin, but after a few builds I keep getting java permGen issues and then it just hangs. I was told this was because spring uses log4j and it has some sort of leaks?
Anyhow, I'm asking for tips to help fire up a server, tomcat, with my updated code so I can make quick updates and have tomcat reloaded.
Here are my current annoyances with tomcat:
Only code changes seem to get auto-reloaded, if I make changes to my view pages things don't get updated unless I redeploy. The maven jetty plugin seems to map to my view pages directly and I saw updates to my view pages instantly w/o it even redeploying.
if I have more than 1 thing running in intelliJ, like say I have a main program that I run, or a unit test, IntelliJ seems to re-order what gets run in the run drop down menu and also the shortcut keys get changed to the last thing I ran.
I use google chrome, for some reason when I start tomcat it brings firefox to the forefront and opens a new tab each and every time.
If someone can address any or all of the above issues that would be great as I hate this dance I have to go through just to update/redeploy my application. I wish it could just be a consitant method, using shortcuts or automatically without me having to close the tab created in firefox, and then minimizie it, or redploy for a simple view change etc.
You should configure IDEA to update classes and resources and enable a checkbox in the Run configuration to do it automatically on frame deactivation.
Browser can be changed in IDEA settings and you can disable opening browser at all in Tomcat Run/Debug configuration.
As for the Run panel tabs order, you can pin tabs using the tab right click menu, in this case they will remain in the Run or Debug panel in the order they were created.
Look at JRebel if you want an even more productive environment (It costs, but I find it is worth it). As you can see here, http://zeroturnaround.com/jrebel/features/, it increases the types of changes you can hot-swap (no waiting for a build). I am currently evaluating it myself and will probably pick up a full license.
BTW, if you develop in scala (it looks like you're not, but just in case) the plugin is free.

IntelliJ IDEA: prevent redeploy for any little change

I am using IntelliJ IDEA and developing web application in Java.
Is there any way that I debug my app without redeploy for any little change? the redeploy thing makes the working very slow and annoying.
Update action in IntelliJ IDEA is configurable, in case of exploded web application you can set what to do: update resources, update classes and resources, redeploy, restart the server. In most cases it's enough to update classes and resources. Update can be performed automatically on frame deactivation (when you switch from IDEA to the browser).
It depends what are you redeploying, JSP or raw Java class? If you change a Java class then IDEA will not compile it and redeploy by itself. If you change a JSP (pr JSF...) you can click package file (Ctrl+Shift+F9) from right mouse click menu.
If you use Netbeans, Netbeans does this for you. I am also fan of IDEA but I liked Netbeans due to this feature.

Clean Working directory of Tomcat in Eclipse

When I work in on an servlet application in Eclipse, I have to choose Clean Working Directory in the server tab of Eclipse for the changes to be visible in the browser. Is there any way to make sure that I only have to build my servlet and the changes are immediately visible?
Doubleclick the Tomcat entry in Servers view, go to the Publishing section and select Automatically publish when resources change.
It by the way won't happen that "immediately". It might take around 3 seconds, you should see this activity in server logs. Although a slow starter, but Glassfish publishes in a subsecond. You may consider it instead for fast development.
Honesty, i do not think this is possible.
It is like programming in javascript and there is no way to see the result without clearing the browsers cache and reloading the page.

Categories

Resources