This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Create a new Web project Generate JPA entities for a database table Generate REST resources from JPA entities Test RESTful Web service application.wadl is not generated and thus the generated client page does not show up.
wadl file is not generated by IDE. It could be generated by J2EE container when RESTful webservice is deployed. I believe this issue has been discovered with Glassfish 3.1 which is a buggy ( RESTful webservices doesn't work ). And the way how it have been seen : test client generated by NB doesn't work. The problem is not just wadl but completely not working RESTful webservices functionality on GF3.1. Please file a bug against GF.
Denis: do you have some proof for saying that "RESTful services doesn't work"? I'm one of Jersey (JAX-RS reference implementation) developer and we (as Jersey group) do test our implementation and integration to glassfish 3.1 continuously, so RESTful webservices actually WORK in Glassfish, 3.0 and 3.1 (2.1 too). I have tested this scenario (little different, but it should be the same) and I have reached following conclusion: this issue is invalid, but its because of everything works as expected (even "Test RESTful web services" feature of netbeans). I used netbeans 7.0 beta downloaded from netbeans.org. my steps: create web app project create new rest resource (I added one additional method which returns text/plain) deploy check for application.wadl: $ curl http://localhost:8080/WebApplication2/resources/application.wadl <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <application xmlns="http://research.sun.com/wadl/2006/10"> <doc xmlns:jersey="http://jersey.dev.java.net/" jersey:generatedBy="Jersey: 1.5-ea03 10/22/2010 12:26 PM"/> <resources base="http://localhost:8080/WebApplication2/resources/"> <resource path="generic"> <method id="get" name="GET"> <response> <representation mediaType="text/plain"/> </response> </method> <method id="getXml" name="GET"> <response> <representation mediaType="application/xml"/> </response> </method> <method id="putXml" name="PUT"> <request> <representation mediaType="application/xml"/> </request> </method> </resource> </resources> </application> test it with netbeans client (works as expected) So.. if there is any issue, its not "just because REST in Glassfish doesn't work at all".
Hi Pavel, I don't know what exactly happens but please see my comments here: 1) Any RESTful webservice which is generated by NB IDE does work with GF3.0 ( simple RESTful WS with from Patterns, RESTful from entities, RESTful from DB, ...). 2) This issue I really can reproduce with GF 3.1 So please note that the same scenario works for GF3.0 and doesn't work for GF3.1. 3) We have some correspondence with Jeff Rubinoff who also finds the issues with GF3.1 . So at least free persons cannot run original scenario from this issue . Here are additional details on running RESTful WS with GF3.1 (this is from Jeff's letter and I see exactly the same with my web project ): However, I got these ClassNotFound warnings in the GlassFish output tab: For the EE6 service: WARNING: WEB9052: Unable to load class countREST, reason: java.lang.ClassNotFoundException: countREST WARNING: WEB9052: Unable to load class countREST, reason: java.lang.ClassNotFoundException: countREST WARNING: WEB9052: Unable to load class remove, reason: java.lang.ClassNotFoundException: remove WARNING: WEB9052: Unable to load class remove, reason: java.lang.ClassNotFoundException: remove WARNING: WEB9052: Unable to load class remove, reason: java.lang.ClassNotFoundException: remove WARNING: WEB9052: Unable to load class find, reason: java.lang.ClassNotFoundException: find WARNING: WEB9052: Unable to load class remove, reason: java.lang.ClassNotFoundException: remove WARNING: WEB9052: Unable to load class countREST, reason: java.lang.ClassNotFoundException: countREST WARNING: WEB9052: Unable to load class find, reason: java.lang.ClassNotFoundException: find WARNING: WEB9052: Unable to load class find, reason: java.lang.ClassNotFoundException: find WARNING: WEB9052: Unable to load class remove, reason: java.lang.ClassNotFoundException: remove WARNING: WEB9052: Unable to load class findRange, reason: java.lang.ClassNotFoundException: findRange ... For the EE5 service: WARNING: WEB9052: Unable to load class getDepartmentIdResource, reason: java.lang.ClassNotFoundException: getDepartmentIdResource WARNING: WEB9052: Unable to load class getJobHistoryResource, reason: java.lang.ClassNotFoundException: getJobHistoryResource WARNING: WEB9052: Unable to load class getLocationIdResource, reason: java.lang.ClassNotFoundException: getLocationIdResource WARNING: WEB9052: Unable to load class getJobHistoryCollectionResource, reason: java.lang.ClassNotFoundException: getJobHistoryCollectionResource WARNING: WEB9052: Unable to load class getCountriesCollectionResource, reason: java.lang.ClassNotFoundException: getCountriesCollectionResource WARNING: WEB9052: Unable to load class getDepartmentsCollectionResource, reason: java.lang.ClassNotFoundException: getDepartmentsCollectionResource WARNING: WEB9052: Unable to load class getEmployeesResource, reason: java.lang.ClassNotFoundException: getEmployeesResource WARNING: WEB9052: Unable to load class getLocationIdResource, reason: java.lang.ClassNotFoundException: getLocationIdResource WARNING: WEB9052: Unable to load class getEmployeesCollectionResource, reason: java.lang.ClassNotFoundException: getEmployeesCollectionResource WARNING: WEB9052: Unable to load class getCountriesCollectionResource, reason: java.lang.ClassNotFoundException: getCountriesCollectionResource WARNING: WEB9052: Unable to load class getDepartmentsResource, reason: java.lang.ClassNotFoundException: getDepartmentsResource WARNING: WEB9052: Unable to load class getManagerIdResource, reason: java.lang.ClassNotFoundException: getManagerIdResource WARNING: WEB9052: Unable to load class getEmployeesResource, reason: java.lang.ClassNotFoundException: getEmployeesResource ... These warnings were repeated a lot. The "classes" they are talking about are actually methods, of course, and they are present in all of the generated service classes. Testing the EE6 service resulted in a "WADL not found" error, and testing the EE5 service resulted in a 500 error. Please note that WARNING messages are about METHODS in RESTful WS . But GF is trying to load classes with these names . Why ? As I already mentioned the same code works fine with GF 3.0. I'm not an original author of WS NB support so I cannot be sure that all is done perfectly without errors but I suggest that NB web application is packaged correctly by JEE specification . It is deployed at least successfully . So I derive from previous notions that the problem is inside GF3.1. Otherwise please let me know what is incorrect in NB packaged application.
One thing here could be useful: we talking here about RESTful WS which are intended to work with entity classes ( mapped to DB ). Probably this could be a problem of Persistence GF support. In this case this is out of RESTful scope ( GF and NB ). But in any case warnings from my latter comment look very strange . So it seems the RESTful support also somehow involved in this issue.
I am trying with the latest NB 7.0 build and with GlassFish 3.1 promoted build 33, and it works fine for me. Is this problem still happening?
Probably it is fixed in the GF. This is not NB problem anyway.
(In reply to comment #6) > Probably it is fixed in the GF. > This is not NB problem anyway. This problem still happening I am trying all related netbeans tutorials step by step with the latest NB 7.0 beta 2 and with GlassFish 3.1 build 43, and it NOT works. Same problem described here with and without DB.
The original issue was about bug in GF3.1 (see a number if Unable to load classes which are really methods). I'm able to reproduce problem with the latest build. But the reasons are different. I downgrade it to P2 because it is not P1. I was not able to reproduce it previously because the regression has been introduced in the j2ee.persistence module. There were no changes in the REST area so I didn't rebuild the whole NB. Here is the reason : In case of JEE6, GF3.0.1 or GF3.1 , transaction type is JTA ( persistence.xml is generated by default and is not changed ) RESTful service files have an attribute @Resource private javax.transaction.UserTransaction utx; which is invalid. As result utx injection on "Test" action is failed and RESTful service is not loaded. RESTful code has not been changed at least 3 months. I see the only one way why it happens : REST generation code uses following code for generate EntityManager access: EntityManagerGenerator generator = new EntityManagerGenerator(facade, entityFQN); List<GenerationOptions> methodOptions = getMethodOptions(entityFQN, variableName); for (GenerationOptions each : methodOptions){ generator.generate(each, ContainerManagedJTAInjectableInEJB.class); } I believe this code adds utx field along with EntityManager. This is the problem of j2ee.persistence module and should be fixed there. Please correct me if I wrong.
application.wadl have nothing with this one issue, in my opinion it was better to file separate one if it's an issue
(In reply to comment #9) > application.wadl have nothing with this one issue, in my opinion it was better > to file separate one if it's an issue Actually are right. RESTful WS is deployed and can be requested. The problem appears only on sending some HTTP request. But wadl is available. Absence of wadl is GF problem definitely.
For the latter issue see different bug #196096.
One more notion about GF3.1. In my case this is b40. All subsequent tries to deploy THE SAME web project which works for GF3.0.1 are failed. The project is deployed ( it is seen in the Services tab under J2EE server node ) but it doesn't work. I don't now the reasons . The server log is empty except deployment Exception (see attachment). BUT the project is deployed . The same exception appears on "Test WS" UI action. Note that it is about activation.jar. The latter jar is THE SAME AS GF3.0.1 case. There are not any exception neither on deployment nor on WS access with GF3.0.1. At the same time the exception appears each time with GF3.1 Actually I don't know why GF3.1 cares at all about activation.jar which is inside project build path not inside war file. Probably this is absolutely different issue and it could be a deployment problem. see also issue #196096.
Created attachment 106552 [details] deployment exception
Update : the same behavior with GF3.1 final. New project with RESTful from DB doesn't work with 3.1 final. Project which perfectly works with 3.0.1 doesn't wok with 3.1 final.
Additional details: 1) I have created Web Project with GF3.0.1 server 2) Create RESTful from DB . Issue #196096 is fixed so this project could be successfully deployed and it works fine. 3) Stop GF3.0.1 4) Change target server from GF3.0.1 to GF3.1 5) Deploy the project. Server will be started and project is deployed. 6) Try to test RESTful WS. There will be exception below. WARNING: Illegal character in path at index 18: file:/F:/Documents and Settings/den/My Documents/NetBeansProjects/WebApplication13/build/web/WEB-INF/lib/jackson-core-asl.jar java.net.URISyntaxException: Illegal character in path at index 18: file:/F:/Documents and Settings/den/My Documents/NetBeansProjects/WebApplication13/build/web/WEB-INF/lib/jackson-core-asl.jar at java.net.URI$Parser.fail(URI.java:2809) at java.net.URI$Parser.checkChars(URI.java:2982) 7) Stop GF3.1 8) Clean and build project. 9) Start GF3.1 10) Deploy and test the project. All works fine.
OK , here is the final observation: - Delete .netbeans from home. - Run NB. - Register GF3.1 - Create Web Project. - Create RESTful from DB. - Look at the libraries. They contains NB bundled Jersey jars . This is the issue #196127 . - Deploy the project and test it. As result there could be different results: 1) At the very first time I was able to get the project working. 2) After some manipulation with various projects GF doesn't handle RESTful. Here is description if manipulations: - Undeploy the project. - Stop GF. - Go to the project libraries nodes and delete all bundled Jersey jars. - Add restlib_gfv3ee6 library to the project. As result there will be 10 jars : jackson-core-asl.jar jackson-jaxrs.jar jackson-mapper-asl.jar jersey-client.jar jersey-core.jar jersey-gf-server.jar jersey-json.jar jersey-multipart.jar jettison.jar mimepull.jar These jars are from GF installation directory. - Clean and build. - Deploy. - Try to test. In my case the result is always the same : GF doesn't handle RESTful. WADL is not generated and the only one exception in the server.log: java.net.URISyntaxException: Illegal character in path at index 18: file:/F:/Documents and Settings/den/My Documents/NetBeansProjects/WebApplication8/build/web/WEB-INF/lib/jackson-core-asl.jar ( it's the same as already mentioned ). So it seems GF3.1 really have bug in the REST. The possible reason why it is not strictly reproducible : - usage only one GF server registered - issue #196127 which in this case actually helps do not use server Jersey jars ( as result this bug is "feature" ).
I can not deploy on GF3.1 final and too cannot deploy on GF3.01 on both receive the same message over the same "RESTful Web Services from Database". GlashFish 3.01 DON'T DEPLOY init: deps-module-jar: deps-ear-jar: deps-jar: check-rest-config-props: generate-rest-config: library-inclusion-in-archive: library-inclusion-in-manifest: compile: compile-jsps: Starting GlassFish Server 3.x GlassFish Server 3.x is running. In-place deployment at D:\NetB\EE\WebEqual\build\web deploy?DEFAULT=D:\NetB\EE\WebEqual\build\web&name=WebEqual&force=true failed on GlassFish Server 3.x Exception while loading the app : org.glassfish.deployment.common.DeploymentException: WELD-000082 Scope interface javax.enterprise.context.RequestScoped is not allowed on stateless enterprise beans for class service.ZzdvarFacadeREST. Only @Dependent is allowed on stateless enterprise beans. D:\NetB\EE\WebEqual\nbproject\build-impl.xml:707: The module has not been deployed. at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:187) at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:613) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) at org.apache.tools.ant.Project.executeTarget(Project.java:1368) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1251) at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284) at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539) at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154) BUILD FAILED (total time: 24 seconds) GlashFish 3.1 DON'T DEPLOY init: deps-module-jar: deps-ear-jar: deps-jar: check-rest-config-props: generate-rest-config: library-inclusion-in-archive: library-inclusion-in-manifest: compile: compile-jsps: In-place deployment at D:\NetB\EE\WebEqual\build\web Initializing... deploy?DEFAULT=D:\NetB\EE\WebEqual\build\web&name=WebEqual&force=true failed on GlassFish Server 3.x Error occurred during deployment: Exception while loading the app : WELD-000082 Scope interface javax.enterprise.context.RequestScoped is not allowed on stateless enterprise beans for class service.ZzdvarFacadeREST. Only @Dependent is allowed on stateless enterprise beans.. Please see server.log for more details. D:\NetB\EE\WebEqual\nbproject\build-impl.xml:707: The module has not been deployed. at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:187) at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:613) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) at org.apache.tools.ant.Project.executeTarget(Project.java:1368) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1251) at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284) at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539) at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154) BUILD FAILED (total time: 14 seconds)
alvarogh, if you look closely on error reported during deployment you will see that it is unrelated to this issue: > WELD-000082 Scope > interface javax.enterprise.context.RequestScoped is not allowed on stateless > enterprise beans for class service.ZzdvarFacadeREST. Only @Dependent is > allowed on stateless enterprise beans.
Gosh! I spent half a day trying to chase this issue down and understand it as well as resulting issue 196127. I have not experienced any of the problem mentioned here (including URISyntaxException) but I can confirm that I'm still having the same problem as Arun. The problem needs to be investigated at GlassFish side and I will file an issue for them. Here is just for record what I can always reproduce: Product Version: NetBeans IDE Dev (Build 110301-321fec680331) Java: 1.6.0_24; Java HotSpot(TM) 64-Bit Server VM 19.1-b02 System: Linux version 2.6.35-25-generic running on amd64; UTF-8; en_NZ (nb) Userdir: /home/david/.netbeans/_UD1 * start with fresh new userdir * register GF 3.1 final (b43) and start it * create new Web Application (EE6) * use REST from DB wizard to generate some RESTful services (when asked for REST resources registration I used "subclass of jawax.ws.rs.core.Application" and 'Add Jersey library') * run Web Application * right click 'RESTful Web Services' node and execute 'Test RESTful Web Services' Result for me is always "Cannot access WADL: Please restart your RESTful application, and refresh this page.". Now if I remove 'Jersey 1.3' library from project classpath then everything runs fine and if you closely look into GlassFish log you will find this entry there: INFO: Registering the Jersey servlet application, named org.netbeans.rest.application.config.ApplicationConfig, at the servlet mapping, /resources/*, with the Application class of the same name If I readd 'Jersey 1.3' library back to project classpath and rebuild/rerun everything then GlassFish will never log above line. Why I have no idea but I will file it for GlassFish server. pavel.bucek, do you have any idea what could be causing jersey servlet not being recognized and started?? Btw. running the same application on GF 3.0.1 runs fine.
Filed as GF issue: http://java.net/jira/browse/GLASSFISH-16118
(In reply to comment #17) > I can not deploy on GF3.1 final and too cannot deploy on GF3.01 on both receive > the same message over the same "RESTful Web Services from Database". > > GlashFish 3.01 DON'T DEPLOY > > init: > deps-module-jar: > deps-ear-jar: > deps-jar: > check-rest-config-props: > generate-rest-config: > library-inclusion-in-archive: > library-inclusion-in-manifest: > compile: > compile-jsps: > Starting GlassFish Server 3.x > GlassFish Server 3.x is running. > In-place deployment at D:\NetB\EE\WebEqual\build\web > deploy?DEFAULT=D:\NetB\EE\WebEqual\build\web&name=WebEqual&force=true failed on > GlassFish Server 3.x > Exception while loading the app : > org.glassfish.deployment.common.DeploymentException: WELD-000082 Scope > interface javax.enterprise.context.RequestScoped is not allowed on stateless > enterprise beans for class service.ZzdvarFacadeREST. Only @Dependent is > allowed on stateless enterprise beans. > D:\NetB\EE\WebEqual\nbproject\build-impl.xml:707: > The module has not been deployed. > at > org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:187) > at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106) > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) > at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:613) > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:390) > at org.apache.tools.ant.Target.performTasks(Target.java:411) > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) > at org.apache.tools.ant.Project.executeTarget(Project.java:1368) > at > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > at org.apache.tools.ant.Project.executeTargets(Project.java:1251) > at > org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284) > at > org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539) > at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154) > BUILD FAILED (total time: 24 seconds) > > > GlashFish 3.1 DON'T DEPLOY > > init: > deps-module-jar: > deps-ear-jar: > deps-jar: > check-rest-config-props: > generate-rest-config: > library-inclusion-in-archive: > library-inclusion-in-manifest: > compile: > compile-jsps: > In-place deployment at D:\NetB\EE\WebEqual\build\web > Initializing... > deploy?DEFAULT=D:\NetB\EE\WebEqual\build\web&name=WebEqual&force=true failed on > GlassFish Server 3.x > Error occurred during deployment: Exception while loading the app : > WELD-000082 Scope interface javax.enterprise.context.RequestScoped is not > allowed on stateless enterprise beans for class service.ZzdvarFacadeREST. Only > @Dependent is allowed on stateless enterprise beans.. Please see server.log for > more details. > D:\NetB\EE\WebEqual\nbproject\build-impl.xml:707: > The module has not been deployed. > at > org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:187) > at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106) > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) > at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:613) > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:390) > at org.apache.tools.ant.Target.performTasks(Target.java:411) > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) > at org.apache.tools.ant.Project.executeTarget(Project.java:1368) > at > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > at org.apache.tools.ant.Project.executeTargets(Project.java:1251) > at > org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284) > at > org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539) > at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154) > BUILD FAILED (total time: 14 seconds) 1) Please stop using this bug as storage for ANY issue with RESTful WS. The currebnt issue is ONLY about successfully deployed web project and problems on GF side with RESTful WS loading . The reason : absence of WADL file. 2) You can ask help via e-mail or can submit the issue into BZ of NB if you think this is NB problem or against GF. 3) David is right . This is different problem. It relates to CDI . This is regression which was introduced in result of fix issue #191997. I will file a bug.
This is the issue for the latest problem : issue #196182 .
I have updated http://java.net/jira/browse/GLASSFISH-16118 with more detailed step to reproduce the issue using asadmin commands. See http://java.net/jira/browse/GLASSFISH-16118?focusedCommentId=304035&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_304035 for hints on why this may be so disputed... If you are lucky, you can avoid this server issue while trying to reproduce it. I also noticed that I cannot reproduce the issue with 3.0.1. I will let others decide what to do with this issue's status setting.
Vince, thank you very much for evaluation it from GF perspective.