eclipse-ee4j / mojarra-jsf-extensions

Other
1 stars 3 forks source link

DynaFaces uses old blueprints component jar and places it in app-server classpath #60

Closed glassfishrobot closed 17 years ago

glassfishrobot commented 17 years ago

When I install the SDK with SWDP, the petstore and blueprints solutions catalog applications no longer work. Here is the error I got:

Type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: PWC1244: Servlet execution threw an exception

root cause

java.lang.NoSuchMethodError: com.sun.javaee.blueprints.components.ui.util.Util.getAttributeValue(Ljavax/faces/context/FacesContext;Ljavax/faces/component/UIComponent;Ljava/lang/String;)Ljava/lang/Object;

note The full stack traces of the exception and its root causes are available in the Sun Java System Application Server 9.1 logs.

This error is happening because Dynamic Faces is probably using older blueprints components (1.4?) and that jar gets added to the app-server classpath. This results in the new version of the com.sun.javaee.blueprints.components.ui.util.Util class in the petstore and solutions catalog hidden by the older version placed in by Dynamic Faces. For now, we are trying to create a work around by renaming this class to something else in the solutions catalog.

Probably, a better fix for this is to first use the new components in Dynamic Faces. Secondly, this jar probably does NOT belong in the app-server classpath unless absolutely necessary for the runtime. It seems like the blueprints components are only used for some examples of Dynamic Faces, and if that is the case, the component jar should be placed along with the examples.

Environment

Operating System: All Platform: All

Affected Versions

[current]

glassfishrobot commented 5 years ago
glassfishrobot commented 17 years ago

@glassfishrobot Commented Reported by inder

glassfishrobot commented 17 years ago

@glassfishrobot Commented inder said: We note that bp-ui-5 component library is also present in DynaFaces. This definitely needs to be updated to the latest version of the blueprints library, or taken out of the AppServer classpath for any of the blueprints applications to work. We do NOT have a workaround for this one.

glassfishrobot commented 17 years ago

@glassfishrobot Commented @edburns said: Inder and Sean, as you know, there are many different versions of the blueprints jars floating around and I need us to be absolutely specific about the one in the file bp-ui-5-simple.jar.

The bp-ui-5-simple.jar contains the JSF 1.2 versions of the ancient but popular JSF example components: ImageMap, ResultSetScroller, TabPanel, and Chart. These are NOT ajax components.

Last I heard, your team was no longer interested in these non-ajax components and they had been moved to some sort of "playground". I would like for you to continue to own these components because I wouldn't have donated them from the JSF codebase to the blueprints one if I knew I was going to have to take them back over some day.

Can you please update the bp-ui-simple-5.jar file on maven on java.net?

The maven info is

com.sun.javaee.blueprints bp-ui-simple 5 runtime

Also, we can't put this jar in WEB-INF/lib because of a classloader bug. If we put just this jar in WEB-INF/lib, then all the dynafaces jars have to go into WEB-INF/lib for all the samples.

glassfishrobot commented 17 years ago

@glassfishrobot Commented inder said: We verified the contents of the jar file and notice that only two classes are shared: Util, and HttpClient. We will try to rename our versions and see if that works.

This jar should NOT be in the app-server classpath because this probably means that the phase-listener in it will get fired for ALL JSF requests for all applications. We tried testing this and see the phase-listener being fired on all such requests. This is a big performance issue and should be fixed. Can you look into that?

For the maintenance issue of the older components, let us track that separately. Can you file a bug on the bpcatalog project for that? Same goes for the maven change that you are requesting.

glassfishrobot commented 17 years ago

@glassfishrobot Commented inder said: Another good way to fix the bug in DynaFaces is to remove all the samples and the the bp-ui-simple jar file for the SDK Beta release. These are anyway non-essential for the runtime and can be put in after the App-server bug is fixed that allows this jar to be placed in the application's WEB-INF/lib.

glassfishrobot commented 17 years ago

@glassfishrobot Commented mode said: I think that the samples need to be there. That's how users know how to use these technologies. The other option is we don't put the dynafaces jars in the lib/addos classpath but put it in the WEB-INF/lib of the app.

glassfishrobot commented 17 years ago

@glassfishrobot Commented inder said: This bug has been fixed by recent changes by Ed and by renaming of the clashing class by the blueprints team.

glassfishrobot commented 7 years ago

@glassfishrobot Commented This issue was imported from java.net JIRA JSF_EXTENSIONS-60

glassfishrobot commented 17 years ago

@glassfishrobot Commented Marked as fixed on Tuesday, February 20th 2007, 5:50:37 am