which jsf-impl should i use? - jsf

Where can i find a jsf-impl for my jsf 2 webapp ?
In maven's repo i got the 1.2 version.
In the http://download.java.net/maven/2/javax/faces/, i can see only the jsf-api, but no jsf-impl
Im currently using tomcat 7, and experimenting with primefaces.
Thank you !
UPDATE
I've been able to get both the api and the impl using this, but im still not sure which impl i should really use :
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.3</version>
<scope>compile</scope>
</dependency>
UPDATE
Sorry for not being clear, but it's not only about which version i should use.
I was doubtful because :
I notice the existence of 2 groupIds of javax.faces and com.sun.faces
I dont see the jsf-impl from the maven repository
What repository i should use to get the newest version
Thank you :-) !

My suggestion is to use jsf-api and jsf-impl version 2.0.4. Because it has lot of bugfixes and improvements over 2.0.3.
You can download them from this page at this link. And have a look at the MigrationGuide also.

Related

Jhipster 7 - swaggerUI not available

Using JHipster with version 7.1.0 I cannot get the swaggerUI to work.
Running the application with mvnw or from Intellij results with 404 page.
The route I try is http://localhost:8080/swagger-ui.html.
Api docs are available - both version 3 and 2, but the swagger page is not.
What is even more interesting is the fact that running the application with mvn clean spring-boot:run command - and the swagger page would work fine.
Things have changed from v6, you need an UI and login with admin user. Then, it's available under http://localhost:8080/admin/docs
Refer to this question here.
You can add dependency swagger-ui into your project.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
Then, update maven. The SwaggerUI will be available on :
http://localhost:8080/swagger-ui/index.html

Caused by: java.lang.NoSuchMethodError: com.datastax.driver.core.TypeCodec.getJavaType()Lcom/google/common/reflect/TypeToken;

I am creating an application using following dependencies, which are all the latest version so far.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.M5</version>
</parent>
`<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>2.0.5</</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.3.0</version>
</dependency>`
I get this exception
"Caused by: java.lang.NoSuchMethodError: com.datastax.driver.core.TypeCodec.getJavaType()Lcom/google/common/reflect/TypeToken;"
After doing some research, I found the reason is that spark-cassandra-connector_2.10 jar also contains com.datastax.driver class files and it also has TypeCodeC.class but this is different from TypeCodeC.class file in cassandra-driver-core
I have 2 solutions so far.
use maven-shade-plugin to exclude class files from the jar. However, this requires a lot of extra work. And for some reason, only I compile the project to a jar and add this jar as a dependency in my project, then it works. I don't think this is a good solution
I remove /com/datastax/driver folder and files directly from the jar. Use this command
zip -d /Users/cicidi/.m2/repository/com/datastax/spark/spark-cassandra-connector_2.10/2.0.5/spark-cassandra-connector_2.10-2.0.5.jar /com/datastax/driver/*
And it works! Then you need to can add this jar to your project, instead of using maven.(you can use maven on your local, but won't work if you pull the jar from again. )
I don't find any answer on the internet. I know there will be some smart guys fixed this issue. But before that, I am posting this answer to help whoever want to fix this problem immediately.
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>2.0.0-M1</version>
</dependency>
has no version conflict with
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.3.0</version>
</dependency>
According to the question "Why is the Cassandra Java Driver embedded in Spark Cassandra Connector artifacts?" in https://github.com/datastax/spark-cassandra-connector/blob/master/doc/FAQ.md . It's difficult to use these two libraries together. But I try to avoid the problem by explicitly specify the dependencies in my pom.
There are some points to pay attention to:
The cassandra-driver-* must be put before the spark-cassandra-connector. And the 3.1.4 may only work fine with 2.0.0-M1.
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-extras</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.0.0-M1</version>
</dependency>

Groovy ShortTypeHandling ClassNotFoundException

I have a groovy application that uses groovy version 2.2.1. My groovy app was previously running fine but has recently started throwing this exception:
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at com.app.Main.main(Main.groovy:83)Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.typehandling.ShortTypeHandling
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
The ShortTypeHandling class was not even introduced until groovy 2.3.0. How can it be referenced in a groovy app running version 2.2.1? I can solve this problem by replacing the groovy-all-2.2.1.jar with groovy-all-2.3.0.jar in my pom but that doesn't root cause the issue.
ShortTypeHandling was introduced in groovy-all-2.3.0.jar so the quick fix was to replace the older groovy-all-x.x.x.jar with groovy-all-2.3.0.jar. This solved the runtime ShorTypeHandling ClassNotFoundException but also created new problems by introducing a new groovy-all.jar dependency in the application.
The real issue was how the groovy compiler was being invoked via maven. Because I introduced spock which required groovy 2.0, I needed to update the maven entries for the groovy-eclipse-compiler dependency. Here are the updated maven entries for working with groovy 2.x:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
<!-- Java version -->
<source>1.7</source>
<target>1.7</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.8.0-01</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<!-- Groovy version -->
<version>2.1.8-01</version>
</dependency>
</dependencies>
</plugin>
With this in place, I could leave my groovy-all dependency the way I originally had it for the working/fully tested application like this:
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<!-- If possible, its better if this matches 2.1.8 in the plugin definition -->
<!-- but 2.2.1 worked fine here and allowed me to keep the original pom definition -->
<version>2.2.1</version>
</dependency>
The application runtime no longer references the ShortTypeHandling class and everything worked as it previously did.
You have to add (If you are using Gradle)
compile 'org.codehaus.groovy:groovy-backports-compat23:2.4.5'
I've just had this after updating the groovy-eclipse Feature in Eclipse (in order to try and fix intermittent save issues caused by https://jira.codehaus.org/browse/GRECLIPSE-1519). Specifically in my case, my Groovy JUnit tests were throwing this exception.
In light of the suggestions above, I checked my Eclipse settings, and it was using Groovy 2.3.4.xx whereas my Maven POM was specifying 2.1.8.xx. I went to Window -> Preferences -> Groovy -> Compiler and clicked "Switch to 2.1.8.xx...", restarting Eclipse when prompted, and this fixed it.
I've solved this issue by adding this dependency on my POM:
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-backports-compat23</artifactId>
<version>2.4.5</version>
</dependency>
Then, it works like a charm.
Matthew Wise's solution worked for me, but in addition to restarting eclipse, I also had to do a project -> clean for it to recompile with the new compiler.
(I would have commented on his answer, but stack overflow has this stupid rule that you can't comment until you get more reputation)
I faced similar issue in our project. Surprisingly groovy version was not an issue.
I was building the project with older version of gradle than the expected gradle version for the project. That resolved the error.
Add following dependency to your pom.xml
<dependency>
<groupId>org.codehaus.groovy.maven.runtime</groupId>
<artifactId>gmaven-runtime-default</artifactId>
<version>1.0-rc-3</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
</exclusion>
</exclusions>
</dependency>
Kuldeep Singh

Icefaces ACE pie chart SectorSeries class missing

I tried to implement this example:
http://icefaces-showcase.icesoft.org/showcase.jsf?grp=aceMenu&exp=chartBean
I wanted to import the
org.icefaces.ace.model.chart.SectorSeries
class, it isn't in the jar file.
I use maven, and I added this dependency to the project's pom file
<dependency>
<groupId>org.icefaces</groupId>
<artifactId>icefaces-ace</artifactId>
<version>3.0.1</version>
</dependency>
Could someone tell me what I do wrong?
I can't find anywhere the location of this class.
Please help me!
Thanks in advancd
I don't believe that class was not available until version 3.1.0 (not 3.0.1) so you'll need to upgrade your Maven poms to get that release.

Error "package javax.faces.bean does not exist" at import javax.faces.bean.ManagedBean

I am studying JSF from Oracle online tutorial. While building its example "hello1" on netbeans it gives the following error at the line import javax.faces.bean.ManagedBean;:
package javax.faces.bean does not exist
How is this caused and how can I solve it?
Add these 2 dependency in your project's pom.xml file
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>
This will solve your dependency problem.
You have to add javax.faces.api jar file to your project.
You can find this library here.
After downloading this file, you have to import that into your project and add it to your artifact.
For gradle :
'com.sun.faces:jsf-api:2.2.8'
'com.sun.faces:jsf-impl:2.2.8'
If you use Netbeans you can search for the library javax.faces.jar in the same folder of this application, you may find it in a folder like this: C:\Program Files\NetBeans 7.3.1\enterprise\modules\ext\jsf-2_2.
Now, right click on yourProject/libraries in Netbeans then choose Add JAR/Folder... command to add javax.faces.jar file.
Adding javax.faces.jar library
From the same popup menu you can use Add Library and add Java EE from GlassFish
Adding Java EE from GlassFish library
Good luck.

Resources