Spring-boot:run не удается получить путь к классам *:/*.json при включении com.graphql-java-generator:graphql-java-clienJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring-boot:run не удается получить путь к классам *:/*.json при включении com.graphql-java-generator:graphql-java-clien

Сообщение Anonymous »

У меня есть приложение с пружинной загрузкой, которое хочет обработать несколько файлов JSON из пути к классам через путь к классам*:/*.json.
Все работает нормально, когда я запускаю приложение:
  • в eclipse
  • после очистки пакета mvn через java -jar...
    Когда я использую mvn clean Spring-boot:run приложение завершается с ошибкой:
java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1649) ~[na:na]
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1657) ~[na:na]
at java.base/java.util.zip.ZipFile$Source.(ZipFile.java:1495) ~[na:na]
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1458) ~[na:na]
at java.base/java.util.zip.ZipFile$CleanableResource.(ZipFile.java:724) ~[na:na]
at java.base/java.util.zip.ZipFile.(ZipFile.java:251) ~[na:na]
at java.base/java.util.zip.ZipFile.(ZipFile.java:180) ~[na:na]
at java.base/java.util.jar.JarFile.(JarFile.java:345) ~[na:na]
at java.base/sun.net.www.protocol.jar.URLJarFile.(URLJarFile.java:100) ~[na:na]
at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69) ~[na:na]
at java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:153) ~[na:na]
at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:109) ~[na:na]
at java.base/sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:70) ~[na:na]
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.doFindPathMatchingJarResources(PathMatchingResourcePatternResolver.java:834) ~[spring-core-6.2.0.jar:6.2.0]
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:710) ~[spring-core-6.2.0.jar:6.2.0]
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:350) ~[spring-core-6.2.0.jar:6.2.0]
at org.springframework.context.support.AbstractApplicationContext.getResources(AbstractApplicationContext.java:1549) ~[spring-context-6.2.0.jar:6.2.0]
at org.springframework.context.support.GenericApplicationContext.getResources(GenericApplicationContext.java:263) ~[spring-context-6.2.0.jar:6.2.0]
at spring.classpatheval.demo.SpringClasspathWeirdness$ClasspathDemo.run(SpringClasspathWeirdness.java:32) ~[classes/:na]
at org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:788) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:82) ~[spring-core-6.2.0.jar:6.2.0]
at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60) ~[spring-core-6.2.0.jar:6.2.0]
at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:86) ~[spring-core-6.2.0.jar:6.2.0]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:796) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:787) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:772) ~[spring-boot-3.4.0.jar:3.4.0]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:na]
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:772) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:325) ~[spring-boot-3.4.0.jar:3.4.0]
at spring.classpatheval.demo.SpringClasspathWeirdness.main(SpringClasspathWeirdness.java:19) ~[classes/:na]


Программа:
package spring.classpatheval.demo;

import java.io.IOException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.ResourcePatternResolver;

public class SpringClasspathWeirdness {
@SuppressWarnings("resource")
public static void main(String[] args) {
final SpringApplication toRun = new SpringApplication(ClasspathDemo.class);
toRun.run(args);
}

@SpringBootApplication
public static class ClasspathDemo implements CommandLineRunner {

private static final Logger log = LoggerFactory.getLogger(SpringClasspathWeirdness.ClasspathDemo.class);
@Autowired
private ResourcePatternResolver resourceLoader;
@Override
public void run(String... args) throws Exception {
final Resource[] gitFiles;
try {
gitFiles = resourceLoader.getResources("classpath*:/*.json");
} catch (IOException e) {
log.error("on getting git information from classpath", e);
return;
}
for (Resource r : gitFiles) {
System.err.println(r.getFilename());
}
System.exit(0);
}

}
}

pom.xml:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

org.springframework.boot
spring-boot-starter-parent
3.4.0


spring.classpatheval
democlasspath
0.0.1-SNAPSHOT
Demo Application
Demo project for Spring Boot Application Info

21
spring.classpatheval.demo.SpringClasspathWeirdness



com.graphql-java-generator
graphql-java-client-runtime
2.8


com.graphql-java-generator
graphql-java-client-dependencies


com.graphql-java-generator
graphql-java-common-runtime




org.springframework.boot
spring-boot-starter-actuator


org.springframework.boot
spring-boot-starter-graphql


org.springframework.boot
spring-boot-starter-web



org.springframework.boot
spring-boot-starter-test
test


org.springframework
spring-webflux
test


org.springframework.graphql
spring-graphql-test
test






org.springframework.boot
spring-boot-maven-plugin


org.apache.maven.plugins
maven-source-plugin


attach-sources
package

jar-no-fork









Я ожидаю, что поведение mvn Spring-boot:run и mvn package будет идентичным.
Я так и сделал сузить проблему до зависимости

com.graphql-java-generator
graphql-java-client-runtime
2.8


Если я исключаю следующие зависимости из com.graphql-java-generator:graphql-java-client-runtime, я не получаю ошибку, но мое приложение не работает (из-за отсутствия зависимостей). Если я не исключаю их из зависимостей, мое приложение будет работать только с пакетом mvn clean и java -jar... впоследствии.


com.graphql-java-generator
graphql-java-client-dependencies


com.graphql-java-generator
graphql-java-common-runtime



То же самое поведение происходит при объявлении поля с аннотацией @Value("classpath*:/*.json") вместо автоматического подключения ResourcePatternResolver:
р>
@Value("classpath*:/git-*.json")
private Resource[] gitFiles;


Подробнее здесь: https://stackoverflow.com/questions/793 ... -graphql-j
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Spring-boot:run не удается получить путь к классам *:/*.json при включении com.graphql-java-generator:graphql-java-clien
    Anonymous » » в форуме JAVA
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Как перевести интерфейсы GraphQL в мир Java с помощью библиотеки Graphql-java-kickstart с помощью Spring-Boot
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Generator Roslyn Source Generator Spected из -за места в следе в имени файла .cs
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Generator Generator Maven Plugin не использует импортные отображения
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Generator Generator Pagainator
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»