1

I am using Java and Maven Project on Ubuntu but I am getting following error upon building Java code on NetBeans IDE: package org.apache.http.client does not exist import org.apache.http.client.ClientProtocolException;

I have following on my Ubuntu:

sudo which java
/usr/bin/java

sudo echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/>:/snap/bin

sudo mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.17, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-58-generic", arch: "amd64", family: "unix"

sudo echo $JAVA_HOME
/usr/lib/jvm/java-1.11.0-openjdk-amd64

sudo java -version
openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu220.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu220.04, mixed mode, sharing)

sudo javac -version
javac 11.0.17

which mvn
/usr/bin/mvn

Do I have to include the path of maven or else?

Question Edited to give clear picture:

ant -f /home/kamran/NetBeansProjects -Dnb.internal.action.name=build jar
init:
Deleting: /home/kamran/NetBeansProjects/build/built-jar.properties
deps-jar:
Updating property file: /home/kamran/NetBeansProjects/build/built-jar.properties
Compiling 89 source files to /home/kamran/NetBeansProjects/build/classes
/home/kamran/NetBeansProjects/Multichain API Demo for Students/src/main/java/multichain/command/builders/QueryBuilderCommon.java:14: error: package org.apache.http.client does not exist
import org.apache.http.client.ClientProtocolException;
/home/kamran/NetBeansProjects/Multichain API Demo for Students/src/main/java/multichain/command/builders/QueryBuilderCommon.java:15: error: package org.apache.http.client.methods does not exist
import org.apache.http.client.methods.HttpPost;
/home/kamran/NetBeansProjects/Multichain API Demo for Students/src/main/java/multichain/command/builders/QueryBuilderCommon.java:16: error: package org.apache.http.entity does not exist
import org.apache.http.entity.StringEntity;
/home/kamran/NetBeansProjects/Multichain API Demo for Students/src/main/java/multichain/command/builders/QueryBuilderCommon.java:17: error: package org.apache.http.impl.client does not exist
import org.apache.http.impl.client.CloseableHttpClient;

The error is on following class package import:

/*
 * Copyright (C) 2017 Worldline, Inc.
 *
 * MultiChainJavaAPI code distributed under the GPLv3 license, see COPYING file.
 * https://github.com/SimplyUb/MultiChainJavaAPI/blob/master/LICENSE
 *
 */
package multichain.object.formatters;

import java.util.List;

import com.google.gson.GsonBuilder;

/**
 * @author Ub - H. MARTEAU
 * @version 2.1
 */
public class GsonFormatters {
    protected static String formatJson(String[] values) {
        final GsonBuilder builder = new GsonBuilder();
        final Gson gson = builder.create();

        return gson.toJson(values);
    }

    protected static String formatJson(List<Object> values) {
        final GsonBuilder builder = new GsonBuilder();
        final Gson gson = builder.create();

        return gson.toJson(values);
    }

    protected static String formatJson(Object value) {
        final GsonBuilder builder = new GsonBuilder();
        final Gson gson = builder.create();
        return gson.toJson(value);
    }
    
    protected static String formatJsonWithCustomBuilder(Object value, GsonBuilder builder) {
        return builder.create().toJson(value);
    }
    
}

My project directory listing is as follows and there is no build.xml as BUILD command is not successful.

.
./target
./target/httpcomponents-client-4.5.14-jar-with-dependencies.jar
./target/archive-tmp
./target/.plxarc
./target/maven-shared-archive-resources
./target/maven-shared-archive-resources/META-INF
./target/maven-shared-archive-resources/META-INF/DEPENDENCIES
./target/maven-shared-archive-resources/META-INF/LICENSE
./target/maven-shared-archive-resources/META-INF/NOTICE
./LICENSE
./pom.xml
./src
./src/main
./src/main/java
./src/main/java/multichain
./src/main/java/multichain/object
./src/main/java/multichain/object/StreamKey.java
./src/main/java/multichain/object/TransactionBase.java
./src/main/java/multichain/object/TransactionWallet.java
./src/main/java/multichain/object/KeyPairs.java
./src/main/java/multichain/object/BalanceAssetGeneral.java
./src/main/java/multichain/object/BalanceWalletTransaction.java
./src/main/java/multichain/object/TxOut.java
./src/main/java/multichain/object/Block.java
./src/main/java/multichain/object/BalanceAsset.java
./src/main/java/multichain/object/AddressBalanceCurrency.java
./src/main/java/multichain/object/MultiChainInfo.java
./src/main/java/multichain/object/BalanceAssetWalletTransaction.java
./src/main/java/multichain/object/TransactionRAWVin.java
./src/main/java/multichain/object/TransactionRAW.java
./src/main/java/multichain/object/TransactionDetail.java
./src/main/java/multichain/object/TransactionRAWVout.java
./src/main/java/multichain/object/TransactionWalletVin.java
./src/main/java/multichain/object/StreamKeyItem.java
./src/main/java/multichain/object/AssetWalletTransaction.java
./src/main/java/multichain/object/AddressBalanceAsset.java
./src/main/java/multichain/object/Address.java
./src/main/java/multichain/object/TransactionWalletVInfo.java
./src/main/java/multichain/object/Item.java
./src/main/java/multichain/object/PermissionDetailed.java
./src/main/java/multichain/object/SignedTransactionRAW.java
./src/main/java/multichain/object/AddressBalanceIssue.java
./src/main/java/multichain/object/MultiBalance.java
./src/main/java/multichain/object/Balance.java
./src/main/java/multichain/object/AddressInfo.java
./src/main/java/multichain/object/TransactionGeneral.java
./src/main/java/multichain/object/TransactionListElement.java
./src/main/java/multichain/object/Permission.java
./src/main/java/multichain/object/AddressBalance.java
./src/main/java/multichain/object/TransactionWalletVout.java
./src/main/java/multichain/object/Transaction.java
./src/main/java/multichain/object/ScriptPubKey.java
./src/main/java/multichain/object/queryobjects
./src/main/java/multichain/object/queryobjects/CustomParamString.java
./src/main/java/multichain/object/queryobjects/DataParamCreate.java
./src/main/java/multichain/object/queryobjects/ParamIssue.java
./src/main/java/multichain/object/queryobjects/RawStreamParam.java
./src/main/java/multichain/object/queryobjects/AssetQuantity.java
./src/main/java/multichain/object/queryobjects/AssetParams.java
./src/main/java/multichain/object/queryobjects/TxIdVout.java
./src/main/java/multichain/object/queryobjects/ParamIssueMore.java
./src/main/java/multichain/object/queryobjects/DataParamStreamItem.java
./src/main/java/multichain/object/queryobjects/DataParamHex.java
./src/main/java/multichain/object/queryobjects/DataParamIssueMore.java
./src/main/java/multichain/object/queryobjects/DataParam.java
./src/main/java/multichain/object/queryobjects/RawParam.java
./src/main/java/multichain/object/queryobjects/DataParamIssue.java
./src/main/java/multichain/object/StreamKeyInfo.java
./src/main/java/multichain/object/formatters
./src/main/java/multichain/object/formatters/GrantFormatter.java
./src/main/java/multichain/object/formatters/HexFormatter.java
./src/main/java/multichain/object/formatters/MultiChainInfoFormatter.java
./src/main/java/multichain/object/formatters/AddressFormatter.java
./src/main/java/multichain/object/formatters/TxOutFormatter.java
./src/main/java/multichain/object/formatters/TransactionFormatter.java
./src/main/java/multichain/object/formatters/WalletTransactionFormatter.java
./src/main/java/multichain/object/formatters/RAWTransactionFormatter.java
./src/main/java/multichain/object/formatters/BlockFormatter.java
./src/main/java/multichain/object/formatters/BalanceFormatter.java
./src/main/java/multichain/object/formatters/StreamFormatter.java
./src/main/java/multichain/object/formatters/CustomParamFormatter.java
./src/main/java/multichain/object/formatters/GsonFormatters.java
./src/main/java/multichain/object/Stream.java
./src/main/java/multichain/object/Create.java
./src/main/java/multichain/object/MultiChainRPCAnswer.java
./src/main/java/multichain/object/TransactionWalletDetailed.java
./src/main/java/multichain/object/ScriptSig.java
./src/main/java/multichain/TestClass.java
./src/main/java/multichain/command
./src/main/java/multichain/command/WalletTransactionCommand.java
./src/main/java/multichain/command/builders
./src/main/java/multichain/command/builders/QueryBuilderAddress.java
./src/main/java/multichain/command/builders/QueryBuilderRAWTransaction.java
./src/main/java/multichain/command/builders/QueryBuilderBlock.java
./src/main/java/multichain/command/builders/QueryBuilderMining.java
./src/main/java/multichain/command/builders/QueryBuilderIssue.java
./src/main/java/multichain/command/builders/QueryBuilderWalletTransaction.java
./src/main/java/multichain/command/builders/QueryBuilderMessaging.java
./src/main/java/multichain/command/builders/QueryBuilderChain.java
./src/main/java/multichain/command/builders/QueryBuilderBalance.java
./src/main/java/multichain/command/builders/QueryBuilderGrant.java
./src/main/java/multichain/command/builders/QueryBuilderCommon.java
./src/main/java/multichain/command/builders/QueryBuilderKey.java
./src/main/java/multichain/command/builders/QueryBuilderStream.java
./src/main/java/multichain/command/AddressCommand.java
./src/main/java/multichain/command/tools
./src/main/java/multichain/command/tools/MultichainTestParameter.java
./src/main/java/multichain/command/RuntimeParameters.java
./src/main/java/multichain/command/MultichainException.java
./src/test
./src/test/java
./src/test/java/multichain
./src/test/java/multichain/command
./src/test/java/multichain/command/AddressCommandTest.java
./src/test/java/multichain/command/TestConst.java
./Archi.png
./.gitignore
./README.md
./install.sh
./?
find: ‘build.xml’: No such file or directory

The output log of command from the install.sh of project: $ mvn clean install -X is displayed below: https://pastebin.pl/view/645b33d7

Netbeans Java Ant Compilation Log https://pastebin.pl/view/b06c719c

The pom.xml maybe its missing any artifact(s)?

<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>com.multichainjavaapi</groupId>
    <artifactId>MultiChainJavaAPI</artifactId>
    <version>0.4.17-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
        <xmlrpc-client.version>3.1.3</xmlrpc-client.version>
        <httpclient.version>4.3.6</httpclient.version>
        <gson.version>2.8.1</gson.version>
        <commons-codec.version>1.10</commons-codec.version>
        <commons-collections4.version>4.1</commons-collections4.version>
    </properties>

    <scm>
        <connection>scm:git:git://github.com/SimplyUb/MultiChainJavaAPI.git</connection>
        <developerConnection>scm:git:[email protected]/SimplyUb/MultiChainJavaAPI.git</developerConnection>
        <url>https://github.com/SimplyUb/MultiChainJavaAPI</url>
    </scm>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
              <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                  <execution>
                    <phase>package</phase>
                    <goals>
                      <goal>single</goal>
                    </goals>
                  </execution>
                </executions>
                <configuration>
                  <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
                </configuration>
              </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.apache.xmlrpc</groupId>
            <artifactId>xmlrpc-client</artifactId>
            <version>${xmlrpc-client.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${httpclient.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${gson.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${commons-codec.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>${commons-collections4.version}</version>
        </dependency>
        
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>

        </dependency>       
    </dependencies>
</project>
P_Z
  • 11
  • 2
  • None of those `sudo` are necessary, and in several cases they do nothing meaningful. Please reassure me you're not running your IDE as root (with `sudo`)? – roaima Jan 28 '23 at 12:07
  • Yes I was running with sudo shell command my NetBeans IDE. But without sudo now its also giving errors "error: package org.apache.http.client does not exist" – P_Z Jan 28 '23 at 12:21
  • 1
    You should not be doing any development as root (`sudo` or otherwise). If you make a mistake you could destroy your system. That's why you have an ordinary user account. (And remember to take automatic frequent regular backups.) – roaima Jan 28 '23 at 12:25
  • Ok. Thanks. And by backups you mean to take backups of my developmental projects using file compression command to .zip or to .gz? – P_Z Jan 28 '23 at 12:28
  • 1
    You won't find a path with `sudo which maven` since the command name is `mvn`. There is no import of `org.apache.http.client` in your shown file. Do you have the referenced artifact in your `pom.xml`? It's probably this [one](https://search.maven.org/artifact/org.apache.httpcomponents/httpcomponents-client/4.5.14/pom). – Freddy Jan 28 '23 at 12:37
  • By "backups" I mean a method of saving enough files from your system that when it breaks (not if, please note), that when it breaks you can recover your work and continue. There are plenty of solutions available, and some of them do involve tar or zip – roaima Jan 28 '23 at 12:42
  • So you are building with Apache `ant` and not with `mvn`? The import is in `QueryBuilderCommon.java`, you need to download `httpclient-4.5.14.jar` from a [maven repo](https://search.maven.org/artifact/org.apache.httpcomponents/httpclient/4.5.14/jar) (click on Download in the upper right corner) and put it into the directory containing the depended jars. It's probably a `lib` directory in your project. We don't know how your `build.xml` looks like, maybe it needs some adjustments. – Freddy Jan 28 '23 at 14:14
  • @Freddy. Thanks for the input. How to change Netbeans Java compiler from ant to maven? I searched for build.xml but cannot find it. Here is the directory listing of my files. – P_Z Feb 02 '23 at 18:07
  • @Freddy I pasted link for my debug log please advise. – P_Z Feb 02 '23 at 19:03
  • In your Netbeans project the httpclient.jar was probably missing, either a missing path or something wrong with the import of maven the project. In your maven build output `httpclient-4.3.6.jar` and `httpcore-4.3.3.jar` are actually present in your local `~/.m2` repository and present in your classpath. – Freddy Feb 02 '23 at 22:05
  • I'm confused since `CloseableHttpClient` was not found and the message says `location: package org.apache.http.client` whereas the location should be [`org.apache.http.impl.client.CloseableHttpClient`](https://javadoc.io/doc/org.apache.httpcomponents/httpclient/4.3.6/org/apache/http/impl/client/CloseableHttpClient.html) (note the missing "impl"). Are your imports correct? Same goes for `TestClass.java` where you need to import `multichain.command.AddressCommand`, `multichain.command.MultichainException` and `multichain.command.RuntimeParameters`. – Freddy Feb 02 '23 at 22:05
  • @Freddy I showed you all I have. I am confused still. don't know whats the problem? – P_Z Feb 04 '23 at 04:20
  • @Freddy Also, how to change default ant compilation and switch to maven compilation in netbeans? – P_Z Feb 04 '23 at 04:21

0 Answers0