When I am trying to migrate to Jetty 9.4.18 from Jetty 8.1.12, I am getting errors because of following issues.
we are using org.eclipse.jetty.server.AsyncContinuation. Which is not present in Jetty 9.4.18
We are using AbstractHttpConnection. specifically AbstractHttpConnection.getCurrentConnection() method. Which is not present in Jetty 9.4.18.
We are using org.eclipse.jetty.security.MappedLoginService which is not present in Jetty 9.4.18.
we are using connector.getConnection() method. which is not present in Connector class in Jetty 9.4.18.
I did not find any documentation in Jetty upgrade page for these issues.
Welcome to Stackoverflow!
It is not a great idea to ask multiple unrelated questions on a single question.
1) we are using org.eclipse.jetty.server.AsyncContinuation. Which is not present in Jetty 9.4.18
AsyncContinuation is an Jetty 7 and older concept.
It was kept in Jetty 8 as a transition to the Servlet spec specific behaviors regarding async that were introduced in Servlet 3.0 (supported in Jetty 8.x).
Switch to using javax.servlet.AsyncContext instead. (You'll find many of the methods names to be similar, so the transition shouldn't be that problematic).
2) We are using AbstractHttpConnection. specifically AbstractHttpConnection.getCurrentConnection() method. Which is not present in Jetty 9.4.18
If you are accessing the raw Connection you will have an endless stream of issues ahead of you. The Connection object no longer represents the physical connection, it often represents a virtual connection and can mutate or be swapped out through the lifespan of a physical connection. You have failed to explain why you need this, and under what kind of situations and environments you need this.
Create a new question on stackoverflow explaining why you need this, and what goal you are attempting to solve. (not the techniques you were using before, the goal, the end result)
3) We are using org.eclipse.jetty.security.MappedLoginService which is not present in Jetty 9.4.18
The entire Security layer was refactored, without details on what you are attempting, it would be impossible to point you to the correct place to look.
Create (another) question on stackoverflow for this one too. Explain what you are attempting to solve, show some code. When detailing your question focus on the goal first, then the techniques you have attempted.
4) we are using connector.getConnection() method. which is not present in Connector class in Jetty 9.4.18.
This seems to overlap with question 3, perhaps.
But there's nothing to work with on this kind of question.
Related
I am cleaning up a build system for a product that uses Jetty. Currently the project has
javax.servlet.jsp:jsp-api:2.1
as a dependency. Given that I am using Jetty for my project I suspect using
org.mortbay.jetty:jsp-api-2.1:6.1.5
would be the better option. Am I right/wrong? Can they be used interchangeably? Does jsp-api-2.1 leverage a different implementation? Or is it simply a repackage if jsp-api to assert compatibility with Jetty?
I've been trying to find information about this on the web, so far nothing has come up.
Update: Seems like org.mortbay.jetty:servlet-api-2.5:6.1.5 and javax.servlet.jsp:servlet-api:2.1 have the same relationship.
Jetty has a long and colorful history with jsp, having no jsp implementation of our own we have leveraged other implementations often, judging by the version numbers your looking at those are very old versions where we were maintaining patches on top of the glassfish jsp implementation. I think it was a patch for supporting logging in jetty and then a bug fix or three.
Now a days we have been using the jsp artifacts from the java.net project which was spun out from glassfish a while back. However that doesn't seem to be tracking bug fixes very regularly either so we are kicking around trying the jasper implementation in tomcat.
Back on your question, the jsp-api artifacts are typically just repackaged artifacts since the api doesn't change frequently. We historically rebundled them to keep them paired with the patched implementation.
Now, you are obviously using a jetty-6 setup since your still using org.mortbay packaging but jetty6 and jetty7 are both servlet-api 2.5 so you might be able to get away with using the jetty7 jsp setup, we have a handy pom that declares these artifacts here:
http://central.maven.org/maven2/org/eclipse/jetty/jetty-jsp/7.6.5.v20120716/jetty-jsp-7.6.5.v20120716.pom
These are glassfish bundles as well, repackaged and made into osgi bundles in the process so they can be used with jetty in osgi environments....they ought to work normally though, we package them in our jetty7 distributions.
I can't decide which way I should take so instead of trying all options I would like to get expert's or more knowlageable people's ideas since I'm a C++ newbie. (After frustration with php for years I understood C,C++ is the way to go )
Extra info: I'm only linux user for a year :)
--Here is what I want to do: Webapp that people can register and chat and be friends. Like facebookchat but no less ability than it (should be realtime all the way) (For instance: If a friend closes the browser it should be seem unavailable).
--Options I have I guess: Using boost:asio, using BSD directly, using opensource server like nginx,lighttpd with fcgi (I din't like libev, libevent.)
--Here is main questions:
1) Is Nginx+fcgi+CPP spawning a new Cpp programme for each request (Performance would be bad)
2) Would using a ready server+FCGI make it impossible or harder the chat thing i stated above.
3) Would you choose BSD, asio or tweaking a ready server for such thing?(with a short why)
(Scability for development is main concern. I mean if it requires new implementations it should be done in future)(blaa blaa must be done)
What would you do?
I think I'd step back a bit, and consider a few questions. First and foremost, it's not apparent from your question whether you're basically trying to set up a web site (or something on that order) that provides this service, or you want to write software that (or example) others could incorporate into their web sites.
Second, it's not entirely clear whether you're interested primarily in the client side, the server side, or both. Most of what you talk about is on the server side, but the features you talk about providing are mostly on the client side.
Third, is the question of whether you're willing to write a closed system that requires your client to work with your server, or you want to use something like XMPP to provide compatibility with existing software.
To summarize: you seem to be jumping directly into nitty-gritty details of how to do things; before you can figure out how very well, you first have to decide exactly what you're going to do. Until those are answered, many of the "how" questions can't be -- and after they're answered, many of the "how" questions may easily disappear.
I would start playing with Wt (http://www.webtoolkit.eu/wt) which is a framework for Web applications, or Qt (http://qt.nokia.com/products/) which offer good http and https support
I'm new to decorators in java, i've discovered that sitemesh offers a good deal of simplicity and flexibility.I've noticed that the stable version 2 is not much in development(i might be wrong) and that there is a new website for 3 which is still in alpha.My worries is about using alpha code in production.Right now not sure if i will be stuck in 2 because no improvement or use 3 with its risks.
can anyone help? thanks for reading this.
I've been using alpha1 in production for some months now with no problems.
One of the sites has >5000 visits/day.
I only had to tweak the struts upload interceptor because it didn't work out of the box.
EDIT (2014.07.04)
I recently found out that sitemesh 3 is indeed NOT safe for production when used in Tomcat behind an Apache Server with ModJK. See the details here: "Not Modified" header followed by unexpected content body with sitemesh3 and mod-jk
What I am looking for is a tool that easily or automatically sends coldfusion error messages to their system.
Then I can use the web-based interface, to manage priorities, track who fixed what and so forth.
But I want to use this to help us deal with errors better, but also to show the importance of a bug tracking system to my fellow works.
System Requirements: Apache, Windows, Coldfusion 8 Standard, Sql Server 2005.
Financial Requirements: Free or Open Source
Goal Or Purpose: To encourage my fellow workers to want and use a bug tracking system.
Does this re-write make more sense?
Thanks
Craig
Wiki has a list of issue tracking software, maybe this list could help.
http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems
You may be able to find a hosted service and use either email or web services to create the ticket using onError. With that said, a simple issue tracking app could be created for your site using the same DB used to drive the content. 2 or 3 tables would take care of the data storage and you're already using CF so the application layer is already there.
HTH.
I have been heavily using this type of a setup for several years by email only, and the last 3 years with a Bug Tracking Software.
I must say, the bug tracking software has made my life so much more peaceful. Nothing is left, forgotten, or slips through the cracks. It's easy to find trends in errors, and remember "all the times" it happened.
Our setup is like this:
1) Coldfusion + Appropriate framework with error reporting - It doesn't matter what you use. I have used Fusebox extensively and am making the transition to ColdBox. Both are very capable, in addition to Mach-II, FW/1, Model-Glue, etc. The key part you have to find in them is their ability to catch "onError", usualy in the application CFC.
2) Custom OnError Script - Wherever an error occurs, you want to capture the maximum amount of information about that error and email it in. What we do is, when an error occurs, we log the user out with a message of "oops, log in again". Before logging them out, the application captures the error and emails it to Fogbugz. Along with it, at the top we include the CGI variables for the IP address, browser being used, etc. Over time you will find the things you need to add.
3) Routing in Fogbugz. A 2 user version of Fogbugz is free, and hosted online. There are two main ways to submit bugs. One is to email one in at a time. So if an error happens 2000 times, you get 2000 emails, and 2000 cases. Not always the best to link them together, etc. They have a feature called BugzScout, which is essentially an HTTP address that you do a form post to with cfform with all of the same information you would have put into the email. There's plenty of documentation on this and something I've always wanted to get around to. I had a scenario of 2000 emails for the first time happen a few weeks ago so I'll be switching over to this.
Hope that helps. Share what you ended up doing and why so we all can learn too!
I'm surprised no one mentioned LighthousePro (http://lighthousepro.riaforge.org). Open source - 100% free - and ColdFusion. As the author I'm a bit biased though. :)
Hard question to answer not knowing what kind of restrictions are there? Do you have any permissions to install anything? Also most bug-tracking systems require some kind of database support.
I have a suggestion. You can put in place a basic bug-tracking system, that just allows people to create tickets, and allows you/someone else to close it.
More Windows based tools are mentioned here
Good open-source bug tracking / issue tracking sofware for Windows
Any reason why coldfusion specifically?
I really like Fogbugz from the makers of Stack Overflow. For one user it's quite reasonably priced. I enter some bugs manually and have others emailed in.
A lot of bug tracking software will expose SOAP methods for entering data into them.
For example, we used Axosoft's OnTime and that exposed some WSDL pages that I consumed in my application. I was told that Jira did as well.
There are few in CF411 list: Bug Tracking/Defect Tracking/Trouble Ticket/Help Desk Tools Written in CFML
We use HopToad. There is another bug-tracking app called LightHouse that integrates with HopToad so you can easily create a [bug] ticket from an incoming exception. HopToad has an API of which there are many clients, you want the CF based one:
http://github.com/timblair/coldfusion-hoptoad-notifier
Even if you dont use HopToad and you end up using a different service or roll your own, if you needed to write your own API client you could leverage the code or pattern(s) of the above HopToad client.
A lot of good information from everyone, and I really do appreciate the efforts given. But not the answer i was looking for. Which maybe means, that what i want does not exist, yet.
So i may have to roll my own solution...Or maybe integrate with another existing app...
Thank You all.
Let me first say I am aware of this faq for Mach-II, which discusses using application specific mappings as a third option when:
locating the framework in the server root is not possible and
creating a server wide mapping to the Mach-II framework directory is impossible
Using application specific mappings would also work for other ColdFusion frameworks with similar requirements (ColdSpring). Here is my issue however: my (I should say "their") production servers are all running ColdFusion MX7, and application specific mappings were introduced in ColdFusion 8. I most likely will be unable to do option 1 or 2 because they involve creating server wide changes that could conflict with other applications (I don't have a final word on this but I am preparing for that to be the case).
That said, is there anybody out there who was in similar bind and has done an option 4, in any ColdFusion version, or with any similar framework? The only option 4 I can think of is modifying the entire framework to change this hardcoded path, and even if that worked it would be time consuming and risky. I'm fairly sure that if there was a simple modification or other simple solution it would already be included in the framework (maybe it's included in version 1.8 of Mach-II and I don't know about it yet).
Any thoughts on solving this problem or even unorthodox setups with libraries that have specific path requirements would be appreciated. Any thoughts from Team Mach-II would especially appreciated...we're on the same team here Matt! ;-)
EDIT
Apparently, the ColdBox framework includes a refactor.xml ANT task which includes a target that refactors the ColdBox code to use a different absolute path as a base along with several other useful refactoring targets. So problem solved for ColdBox users.
Looking at the build.xml for Mach-II (1.6 and 1.8) I don't see any target in there that would allow me to refactor the code. I thought about creating a feature request ticket for such a task for Mach-II but frankly I don't think creating such an ANT task is a big priority for the MachII team since the need really only relates to either
a) users of ColdFusion versions below 8
b) someone who wants to use multiple Mach-II versions in the same application, a use I doubt they want to support
The ColdSpring code I have doesn't come with any ANT tasks at all, although I do have unit tests, and I bet if I poked around the SVN I'd find a few build scripts.
Using Ant tasks to refactor and retest the code, or the simpler (and sort of cop out) solution of creating a separate ColdFusion instance for the application are the best answers I've been able to come up with. I don't need this application to exist in the shared scope of other applications, so my first solution is going to be to try and get a dedicated CF instance for this application.
I'm also going to look at the ColdBox refactor.xml ANT task however and see if I can modify it to work generically to recognize and refactor CFC references with modified absolute paths. If I complete this task I'll be sure to post the code somewhere and edit create an answer to link to it. If anybody else wants to take a crack at that or help me out with it feel free.
Until then I'll leave this question open and see if someone comes up with a better solution.
Fusebox is not so strict, I think.
In XML mode (maybe I call this not 100% correcly, just mean using the Application.cfm) it's just proper include in index.cfm, something like:
<cfinclude template="fusebox5/fusebox5.cfm" />
In non-XML mode it will need proper extending in the root Application.cfc:
<cfcomponent extends="path.to.fusebox5.Application" output="false">
All you need is to know the path.
Perhaps you could create a symbolic link and let the operating system resolve the issue for you?
I've been playing with FW/1 lately, and while it may look like you need to add a mapping and extend org.corfield.framework, you can actually move the framework.cfc file into your web root and just extend="framework". It's dead simple, and gets you straight into a great framework with no mess and very little overhead.
It should be as simple as dropping the 'MachII' folder at the root of your domain (i.e. example.com/MachII). No mappings are required to use Mach-II if you just deploy at the root of the domain of your website.
Also:
Please file a ticket for the ANT task you mentioned in your question. Team Mach-II would love to have this issue logged:
Enter a new ticket on the Mach-II Trac
If you want to tackle an ANT task for us, we can get stuff like this incorporated into the builds faster than waiting to for a Team member to work on the ticket. Code submissions from the community are welcome and appreciated.
We don't keep an eye on Stack Overflow very often so we invite you to join our official community group at called "Mach-II for ColdFusion" at Google Groups. The Google Group is the best place to ask questions or comments like this if you want feedback from the Team.