Spring Batch Intellij gives error due to version. ( Just error Ultimate version ) - spring

I am trying to create a Spring Batch project. And I am creating the project.
However, after purchasing intelllij idea ultimate version, my project started giving errors. I downloaded the "community" version again and my project is working :)
So what is the problem?
If I want to run my spring batch project with intelllij idea ultimate 2022.2 version. I cannot access any spring batch objects like JobBuilderFactory, StepBuilderFactory, ItemWriter, ItemReader etc.
But if I run the same project with the free version "community" there is no error and the project works.
I can't help going crazy :)
Could not autowire. No beans of 'JobBuilderFactory' type found

I think this is because IntelliJ Idea is not able to detect that EnableBatchProcessing is importing these beans and adding them to the application context. This error is only a hint from the IDE. If you run the project with the ultimate edition, it should work as well.
There should be a difference between the community and ultimate edition WRT how to report this kind of errors, but if your app runs with the CE, it should also run with the UE.

The project that worked in the CE version did not work in the Ultimate version. However, the problem was solved as follows.
I added #EnableBatchProcessing annotation in Spring Boot Application class and I think it included it in the context.
NOTE : Usually in batch applications, #EnableBatchProcessing anotation is included in the configuration class.
When I included it directly in the main class, the problem was solved. It was a strange error.

Related

Intellij complaining about JDK location

First Image
Second Image
As I attached 2 images, I am having trouble running my spring boot gradle project written in groovy.
As soon as I open the project, intellij tries to build the project and it fails saying Gradle Sync failed.
Since it is complaining about java home in the jdk setting, I was trying to change the path as my intellij expects. but as soon as I change it, it tells me that it cannot find android sdk location. and I have no idea why it cares about android sdk. This project is about spring batch job using gradle and groovy.
I have been searching why it happens for days now and online is talking about ardroid studio solution. and those solution do not apply to my problem.
Can someone help me with this issue please?
Thank you in advance.
It looks like you are running Android Studio instead of IntelliJ IDEA.
The former doesn't support projects other than targeted for Android, so your project will not work there.
Make sure you run IntelliJ IDEA. You can get it at https://www.jetbrains.com/idea/download/index.html.

spring initializr: Cannot import org.slf4j.LoggerFactory for Gradle projects

I'm trying to learn how to build "Spring Web" web-applications using IntelliJ IDEA, and I'm encountering a very frustrating issue when I try to create a new project using "Spring Initializr".
For some reason when I choose to create a "Gradle Project", Java or Kotlin, I'm not able to import org.slf4j.LoggerFactory
If I manually add the import statement, it doesn't resolve, and if I try to get InteliJ to automatically add the import, it instead adds the following...
import com.sun.org.slf4j.internal.LoggerFactory
This satisfies the editor, but it won't compile. It errors with...
Symbol is declared in module 'java.xml.crypto' which does not export package 'com.sun.org.slf4j.internal'
If instead I create a "Maven Project", either Kotlin or Java, then it works as expected.
I'm keeping the other settings in spring initializr set to default values, Spring Boot=2.4.2, Java=11
IntelliJ IDEA says there are no updates available.
I've made various attempts to manual add the slf4j dependencies to build.gradle (for Java) or build.gradle.kts (for Kotlin), and nothing I've done has made any difference.
I've also tried various different options for Spring Boot and Java version, and again it has made no difference.
Update...
I've confirmed that it only happens on one of my computers, my primary development desktop computer. My laptop is working fine.
I can't find anything that's different between the 2 IDEA installations.
Things I've tried so far to fix it...
Invalidate Caches / Restart
Manage IDE Settings -> Restore Default Settings
Removing and re-adding JDK's
Uninstalling and re-installing IntelliJ IDEA
I've tried everything I can think of to fix this, but the problem persists.
Basically I can't use logging in any new Gradle Spring projects. It just won't load the org.slf4j library.
Update 2...
The nature of the problem isn't exactly what I thought it was initially. It turns out the code compiles and runs just fine with the correct import, but the IDE is reporting it as unresolved.
So it seems it's just an issue with the IDE's intellisense. This seems less serious, but it's still quite inconvenient having the editor incorrectly showing errors.
After identifying that the problem was just with the IDE editor intellisense, rather than with the code dependencies or project, I was eventually able to resolve it by closing the IDE, and then deleting the system folder "C:\Users<user>\AppData\Local\JetBrains\IntelliJIdea2020.3"
After restarting IntelliJ IDEA, the folder was re-created automatically and the issue resolved itself.

Intellij cannot resolve variables of thymeleaf templates in spring boot

This thread said the problem is fixed already, but it seems that I still have the problem even I have the latest version of IntelliJ Ultimate.
I have implementation "org.springframework.boot:spring-boot-starter-thymeleaf" in my gradle setting.
The application works fine, but I want to be able to use The Navigate to Declaration feature provided by IntelliJ. I already have thymeleaf-spring module in my project.

how do I fix type mismatch: #ExtendWith(SpringExtension::class) KClass -> Class in intelij?

I'm using intellij community 2018.2 and gradle 4.9 with kotlin 1.2.60
I've just downloaded a springboot2 pack from start.spring.io with kotlin/gradle support + web + h2 + jpa. I am following this official tutorial from spring.
gradle build and gradle test both work fine in command line.
In intellij though, I get the following error from the IDE:
Error:(9, 13) Kotlin: Type mismatch: inferred type is KClass<SpringExtension> but Class was expected
package org.ninrod.blog.blog
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit.jupiter.SpringExtension
#ExtendWith(SpringExtension::class) <-- RIGHT HERE
#SpringBootTest
class BlogApplicationTests {
#Test
fun contextLoads() {
}
}
here is the full source code of the sample: link.
How would one fix this in intellij so that the project compiles cleanly as in command line?
ps: here is a screenshot of the problem in intellij:
well, I uninstalled absolutely everything regarding java and then I installed everything from zero, removed all configurations, everything. Then it worked.
What you have is correct. I could not reproduce the error as shown in the screenshot below. And I was able to run your test without issue. So it is a false error. You can verify this by confirming the project builds via Gradle either from within IDEA of from the command prompt.
Try the following:
From the Gradle tool window, click the "Refresh all Gradle projects" button
From what I am seeing, and from my experience, I don't think think this will resolve the issue. But it is a quick hit and worth a wuick try.
It's possible the IntelliJ IDEA caches are corrupted. Go to *File > Invalidate Caches / Restart *. In the dialog window, click "Invalidate and Restart". After IDEA restarts and the project opens, wait for it to finish reindexing the project (watch the progress at the bottom). Once the reindex is done, see if the issue is resolved.
I suspect this will resolve the issue.
If the above does not work, then it's possible something is not configured correctly. Try recreating the IDEA project. Close the project, delete (or archive) the .idea directory and any *.iml files. Then import the project by selecting the build.gradle file. If you are not familiar with this, watch the "Working with Gradle in IntelliJ IDEA" video on the IntelliJ IDEA documentation page
Lastly, make sure you are running the latest version of IntelliJ IDEA (v2018.2), that was released two weeks ago. It is what I'm running. You using a lot of the latest and greatest tech (JUnit 5, Kotlin, Spring boot 2.x with Spring 5.x), so an older version of IDEA may have a problems. Finally, even though what you have worked for me, I'd recommend upgrading to the latest version of Kotlin (v1.2.60) in your gradle.properties
I do not get the error and can run the test:

Maven JavaFX Cannot find Main Class

I have some problems running my JavaFX8 Project with Maven. Here is the situation:
I create a Maven Java FX application within Netbeans (File --> New Project --> Maven JavaFX Application). Netbeans creates the packages and also creates a MainApp.java file.
Even if I don´t edit anything in this project, I get an error/warning within the properties.
Location: Right-Click Project --> Properties --> Run
Message: One of Run/Debug/Profile Project actions has been modified and the Run panel cannot be safely edited
The project can be built and run for some time, but after I create more packages, classes and stuff like that, I can´t run the application anymore.
It tells me, that it can´t find the Main class.
Message: Error: Could not find or load main class
I found some entries at stackoverflow and google, but none of the solutions seem to work for me.
I read this Topic for example.
One of the solutions is, to set the main class at the properties (Run), but all the fields are disabled. I also deleted the Cache, which didn´t solve the problem. I also checked the typing.
Some other sites stated, that it seems to be a bug, but they had older Netbean Versions. I updated my Netbeans version to 8.2 today.
The only solution at the moment is to create a new Maven JavaFX project and refactor the files to the new project. This works for a couple of hours but in the end the error occurs again.
Does anybody know a solution?
Use Run from the Project, not Run File from the main file. The latter can work on other setups, but not straight out of Maven.

Resources