I cluster vengono ricevuti da cloudera-manager-api.NullPointerException su org.apache.cxf.jaxrs.client.AbstractClient.setupOutInterceptorChain quando utilizzo cloudera-manager-apri
Uso il plug-in Maven.
C'è another question relating to null pointer exceptions, ma questo non risolve il mio particolare problema. Sembra un problema di dipendenza perché se eseguo l'app nel mio IDE funziona perfettamente.
Quando eseguo il contenitore self-pack fallisce, quale dipendenza da posso mancare?
fonte è al di sotto
String host = HOST_PREFIX + args[0];
String command = args[1];
RootResourceV10 apiRoot = new ClouderaManagerClientBuilder()
.withHost(host).withPort(7180)
.withUsernamePassword(ADMIN, ADMIN).build().getRootV10();
if (apiRoot == null) {
System.exit(0);
}
ClustersResourceV10 clusterResource = apiRoot.getClustersResource();
try {
if (command.equals(START)) {
System.out.println("starting..");
ApiCommand cmd = apiRoot.getClustersResource().startCommand(
"cluster"
);
while (cmd.isActive()) {
cmd = apiRoot.getCommandsResource()
.readCommand(cmd.getId());
}
} else {
System.out.println("stopping..");
ApiCommand cmdstop = apiRoot.getClustersResource().stopCommand(
"cluster"
);
while (cmdstop.isActive()) {
cmdstop = apiRoot.getCommandsResource().readCommand(
cmdstop.getId());
}
}
} catch (NullPointerException e) {
e.printStackTrace();
}
}
messaggio di errore è inferiore {
java.lang.NullPointerException
at org.apache.cxf.jaxrs.client.AbstractClient.setupOutInterceptorChain(AbstractClient.java:850)
at org.apache.cxf.jaxrs.client.AbstractClient.createMessage(AbstractClient.java:900)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:522)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:206)
at com.sun.proxy.$Proxy23.startCommand(Unknown Source)
at com.worksap.company.cloudera.cluster.manage.ClusterManager.main(ClusterManager.java:48)
pom.xml è al di sotto
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>jp.co.ltd</groupId>
<artifactId>cluster-manager</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<repositories>
<repository>
<id>cdh.repo</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
<name>Cloudera Repository</name>
</repository>
</repositories>
<properties>
<cxf.version>2.7.5</cxf.version>
<guava.version>14.0</guava.version>
<jackson2.version>2.1.0</jackson2.version>
<joda.version>2.1</joda.version>
<junit.version>4.11</junit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<test.redirectToFile>true</test.redirectToFile>
<privateClassPath>com.cloudera.api.shaded</privateClassPath>
</properties>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.cloudera.api</groupId>
<artifactId>cloudera-manager-api</artifactId>
<version>5.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.8</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>false</minimizeJar>
<createDependencyReducedPom>false</createDependencyReducedPom>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.worksap.company.sample.spark.batch.SparkSample</mainClass>
</transformer>
</transformers>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<!-- Additional configuration. -->
</configuration>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArguments>
<extdirs>lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
Stai usando Eclipse o IntelliJ (o forse Netbeans)? –
Una NullPointerException è il risultato del tentativo di ottenere un valore da una variabile che non è stata definita. I problemi con le dipendenze di solito generano un codice che non verrà compilato o un errore come ClassNotFoundException – Danielson
Puoi indicare dove si verifica l'errore? Se possibile, fare clic su (ClusterManager.java:48) <- quale linea è? – Danielson