Error creating bean when running .JAR file

Amer

I have a Java application with Spring boot, built with MySQL database and Spring security. The application's purpose is to connect to SOAP API and using Thymleaf's front-end to interact with the data.

The project works just fine when running it on the localhost with IntelliJ IDEA, with all the SOAP connections. The fat jar was built successfully when running mvn clean package. I would like to deploy the jar file to a hosting server.

Any help is appreciated.

But when running it using java -jar <your_app_name>-<your_app_version>.jar it crashes and give the following error:

Error

        2021-10-02 12:47:58.149  WARN 32908 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: o
        rg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authController' defined in URL [jar:file:/C:/Users/amerm/Downloads/Compressed/project_name/target/project_name-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/project_name/PersonDetailsClient/Controller/AuthController.class]: Unsatisfied dependency expressed through constr
        uctor parameter 2; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'personDetailsServiceImpl' defined in URL [jar:fi
        le:/C:/Users/amerm/Downloads/Compressed/project_name/target/project_name-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/project_name/PersonDetailsClient/Service/ServiceImpl/PersonDetai
        lsServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean
        with name 'personDetailsClient' defined in class path resource [com/project_name/PersonDetailsClient/Config/PersonDetailsClientConfiguration.class]: Bean instantiation via fact
        ory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.project.name.PersonDetailsClient.PersonDetailsClient]: Fa
        ctory method 'personDetailsClient' threw exception; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.ws.soap.saaj.Sa
        ajSoapMessageFactory]: Unresolvable class definition; nested exception is java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException

AuthController

@Controller
@RequestMapping(value = "/")
public class AuthController {

    @Autowired
    public AuthController(UserService userService, RoleDao roleDao, IPersonDetailsService personDetailsService) {
        this.personDetailsService = personDetailsService;
        this.userService = userService;
        this.roleDao = roleDao;
    }

    private IPersonDetailsService personDetailsService;

    private UserService userService;

    private RoleDao roleDao;

    @RequestMapping
    public String home(){
        return "redirect:/index";
    }

    @RequestMapping("index")
    public String index(){
        return "index";
    }

    @RequestMapping(value = "signup", method = RequestMethod.GET)
    public String signup(Model model) {
        PersonDetails personDetails = new PersonDetails();

        model.addAttribute("user", personDetails);

        return "signup";
    }

    @RequestMapping(value = "signup", method = RequestMethod.POST)
    public String signupPost(@ModelAttribute("user")  PersonDetails newPersonDetails, Model model) throws DatatypeConfigurationException {

        if (userService.checkUserExists(newPersonDetails.getUsername(), newPersonDetails.getEmailAddress())) {

            if (userService.checkEmailExists(newPersonDetails.getEmailAddress())) {
                model.addAttribute("emailExists", true);
            }

            if (userService.checkUsernameExists(newPersonDetails.getUsername())) {
                model.addAttribute("usernameExists", true);
            }

            return "signup";
        } else {
            Set<UserRole> userRoles = new HashSet<>();
            userRoles.add(new UserRole(newPersonDetails, roleDao.findByName("ROLE_USER")));

            String personId = personDetailsService.findPersonByVariant1(newPersonDetails.getLastName(), newPersonDetails.getInitials(), newPersonDetails.getDateOfBirth()).getPersonDetails().getPersonId();
            userService.createUser(newPersonDetails, userRoles);
            PersonDetails user = userService.findByUsername(newPersonDetails.getUsername());
            user.setPersonId(personId);
            userService.saveUser(user);
            if (personId == null){
                String personIdCreated = personDetailsService.createPersonByVariant1(newPersonDetails.getLastName(), newPersonDetails.getInitials(), newPersonDetails.getDateOfBirth()).getPersonDetails().getPersonId();
                userService.createUser(newPersonDetails, userRoles);
                PersonDetails person = userService.findByUsername(newPersonDetails.getUsername());
                person.setPersonId(personIdCreated);
                userService.saveUser(newPersonDetails);
            }

            return "redirect:/";
        }
    }
}

PersonDetailsServiceImpl

@Service
public class PersonDetailsServiceImpl implements IPersonDetailsService {

    final String PersonDetailsEndPoint = "ENDPOINT_URL";
    final String userId = "NUM";
    final String organisationToken = "NUM";

    PersonDetailsClient personDetailsClient;

    @Autowired
    public PersonDetailsServiceImpl(PersonDetailsClient personDetailsClient) {
        this.personDetailsClient = personDetailsClient;
    }

    @Override
    public GetPersonDetailsResponse findPersonByVariant1(String lastName, String initials, Date dateOfBirth) throws DatatypeConfigurationException {

        ObjectFactory objectFactory = new ObjectFactory();
        GetPersonDetailsRequest.PersonDetails person = objectFactory.createGetPersonDetailsRequestPersonDetails();
        person.setLastName(lastName);
        person.setInitials(initials);
        GregorianCalendar bgc = new GregorianCalendar();
        bgc.setTime(dateOfBirth);
        XMLGregorianCalendar bDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(bgc);
        person.setDateOfBirth(bDate);

        GetPersonDetailsRequest getPersonDetailsRequest = objectFactory.createGetPersonDetailsRequest();
        getPersonDetailsRequest.setPersonDetails(person);

        GetPersonDetailsResponse getPersonDetailsResponse = personDetailsClient.getPersonDetailsResponse(PersonDetailsEndPoint, getPersonDetailsRequest, new TokenHeaderRequestCallback(userId, organisationToken));

        return getPersonDetailsResponse;
    }

    @Override
    public CreatePersonDetailsResponse createPersonByVariant1(String lastName, String initials, Date dateOfBirth) throws DatatypeConfigurationException {

        try {
            ObjectFactory objectFactory = new ObjectFactory();
            CreatePersonDetailsRequest.PersonDetails person = objectFactory.createCreatePersonDetailsRequestPersonDetails();
            person.setLastName(lastName);
            person.setInitials(initials);
            GregorianCalendar bgc = new GregorianCalendar();
            bgc.setTime(dateOfBirth);
            XMLGregorianCalendar bDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(bgc);
            person.setDateOfBirth(bDate);


            CreatePersonDetailsRequest createPersonDetailsRequest = objectFactory.createCreatePersonDetailsRequest();
            createPersonDetailsRequest.setPersonDetails(person);

            CreatePersonDetailsResponse createPersonDetailsResponse = personDetailsClient.createPersonDetailsResponse(PersonDetailsEndPoint, createPersonDetailsRequest, new TokenHeaderRequestCallback(userId, organisationToken));

            return createPersonDetailsResponse;

        } catch (SoapFaultClientException soapFaultClientException) {
            return null;
        }
    }


    @Override
    public CheckChangesPersonDetailsResponse checkPersonChanges(String personId, String title, String lastName, String initials, String firstName, String infix, Date dateOfBirth, String streetName, String houseNumber, String houseNumberAddition, String postalCode, String residence, String country, String countryOfBirth, String lastNameOfBirth, String infixOfBirth, String nationality, GenderType gender, String insurancePolicy, String policyNumber, String socialSecurityNumber, Date dateOfDeath, String telephone, String emailAddress) throws DatatypeConfigurationException {
...
    }

    @Override
    public UpdatePersonDetailsResponse updatePersonDetails(String personId, String title, String lastName, String initials, String firstName, String infix, Date dateOfBirth, String streetName, String houseNumber, String houseNumberAddition, String postalCode, String residence, String country, String countryOfBirth, String lastNameOfBirth, String infixOfBirth, String nationality, GenderType gender, String insurancePolicy, String policyNumber, String socialSecurityNumber, Date dateOfDeath, String telephone, String emailAddress) throws DatatypeConfigurationException {
...
    }
}

PersonDetailsClientConfiguration

@Configuration
public class PersonDetailsClientConfiguration {

    @Bean
    public Jaxb2Marshaller marshaller() throws Exception {

        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setContextPath("com.<project_name>.stub");
        marshaller.afterPropertiesSet();

        return marshaller;
    }

    @Bean
    public WebServiceTemplate webServiceTemplate(Jaxb2Marshaller marshaller) {

        WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
        webServiceTemplate.setDefaultUri("ENDPOINT_URL");
        webServiceTemplate.setMarshaller(marshaller);
        webServiceTemplate.setUnmarshaller(marshaller);

        return webServiceTemplate;
    }

    @Bean
    public PersonDetailsClient personDetailsClient(Jaxb2Marshaller marshaller) {

        PersonDetailsClient personDetailsClient = new PersonDetailsClient();
        personDetailsClient.setDefaultUri("ENDPOINT_URL");
        personDetailsClient.setMarshaller(marshaller);
        personDetailsClient.setUnmarshaller(marshaller);

        return personDetailsClient;
    }
}

PersonDetailsClient

public class PersonDetailsClient extends WebServiceGatewaySupport {

    public GetPersonDetailsResponse getPersonDetailsResponse(String personDetailsEndPoint, GetPersonDetailsRequest getPersonDetailsRequest, TokenHeaderRequestCallback tokenHeaderRequestCallback) {

        GetPersonDetailsResponse getPersonDetailsResponse = (GetPersonDetailsResponse) getWebServiceTemplate().marshalSendAndReceive(personDetailsEndPoint, getPersonDetailsRequest, tokenHeaderRequestCallback);

        return getPersonDetailsResponse;
    }

    public CreatePersonDetailsResponse createPersonDetailsResponse (String personDetailsEndPoint, CreatePersonDetailsRequest createPersonDetailsRequest, TokenHeaderRequestCallback tokenHeaderRequestCallback) {

        CreatePersonDetailsResponse createPersonDetailsResponse = (CreatePersonDetailsResponse) getWebServiceTemplate().marshalSendAndReceive(personDetailsEndPoint, createPersonDetailsRequest, tokenHeaderRequestCallback);

        return createPersonDetailsResponse;
    }

    public CheckChangesPersonDetailsResponse checkChangesPersonDetailsResponse (String personDetailsEndPoint, CheckChangesPersonDetailsRequest checkChangesPersonDetailsRequest, TokenHeaderRequestCallback tokenHeaderRequestCallback) {

        CheckChangesPersonDetailsResponse checkChangesPersonDetailsResponse = (CheckChangesPersonDetailsResponse) getWebServiceTemplate().marshalSendAndReceive(personDetailsEndPoint, checkChangesPersonDetailsRequest, tokenHeaderRequestCallback);

        return checkChangesPersonDetailsResponse;
    }

    public UpdatePersonDetailsResponse updatePersonDetailsResponse (String personDetailsEndPoint, UpdatePersonDetailsRequest updatePersonDetailsRequest, TokenHeaderRequestCallback tokenHeaderRequestCallback) {

        UpdatePersonDetailsResponse updatePersonDetailsResponse = (UpdatePersonDetailsResponse) getWebServiceTemplate().marshalSendAndReceive(personDetailsEndPoint, updatePersonDetailsRequest, tokenHeaderRequestCallback);

        return updatePersonDetailsResponse;
    }
}

pom.xml

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.<group_name></groupId>
    <artifactId><artifactId></artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name><Project_name></name>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ws</groupId>
            <artifactId>spring-ws-core</artifactId>
        </dependency>

    </dependencies>

    <distributionManagement>
        <snapshotRepository>
            <uniqueVersion>false</uniqueVersion>
            <id>snapshot</id>
            <name>Carewebport Snapshots</name>
            <url>https://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
        </snapshotRepository>
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.14.0</version>
                <configuration>
                    <schemaLanguage>WSDL</schemaLanguage>
                    <generatePackage>com.<project_name>.stub</generatePackage>
                    <schemas>
                        <schema>
                            <url>URL.WSDL</url>
                        </schema>
                    </schemas>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>
Mike Kolkman

This might be caused by the Java version that you're using during runtime. You will have to add the javax ws package as a dependency, since it isn't bundled with newer Java versions anymore. See Java 11 package javax.xml.soap does not exist for more info

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Error when creating JavaFX jar file from codes written in Groovy

From Java

Error creating bean with name 'repositorySearchController' defined in URL [jar:file:/Users/umair/.m2/repository

From Dev

Spring boot & spring security : Error creating bean with name 'securityFilterChain' . When running program

From Dev

NoSuchFileException when running jar file

From Dev

Error creating bean with name 'userController' defined in file

From Dev

Error importing bean definitions inside jar file

From Java

Error creating bean when testing a Spring

From Dev

Error creating mongock bean when deploying on docker

From Java

Error when creating bean with type java.io.File [Ambiguous constructor argument types]

From Dev

Error regarding creating a jar file for spark scala

From Dev

database attachement when creating .jar file

From Dev

Regarding org.apache.spark.sql.AnalysisException error when creating a jar file using Scala

From Dev

Jpackage 'invalid option [class]' error when creating linux DEB form a jar file

From Dev

Error while running jar file on system

From Java

Jenkins configuration Error in running the jar file

From Dev

Error in running jar file of spring boot application

From Dev

Serilog not creating log file when running on Linux

From Dev

Jar file not working (filenotfoundexception when running in cmd)

From Java

NoClassDefFoundError when running Scala jar file

From Dev

Issue with main when running jar file

From Dev

.jar not running when passed valid file in args

From Dev

JavaFX runtime exceptions when running .jar file

From Dev

Unable to Access Jar File When Running Akka

From Dev

Database not updating when running from .jar file

From Dev

Error running pod install when Creating schemes

From Java

got error when I am running Jar file. IllegalStateException: Location is not set

From Dev

2: No such directory error when running jar from bat file using scheduler

From Dev

Java properties file in jar not found when running jar

From Dev

UnsatisfiedLinkError running .jar of alljoyn project, no error when running in Eclipse

Related Related

  1. 1

    Error when creating JavaFX jar file from codes written in Groovy

  2. 2

    Error creating bean with name 'repositorySearchController' defined in URL [jar:file:/Users/umair/.m2/repository

  3. 3

    Spring boot & spring security : Error creating bean with name 'securityFilterChain' . When running program

  4. 4

    NoSuchFileException when running jar file

  5. 5

    Error creating bean with name 'userController' defined in file

  6. 6

    Error importing bean definitions inside jar file

  7. 7

    Error creating bean when testing a Spring

  8. 8

    Error creating mongock bean when deploying on docker

  9. 9

    Error when creating bean with type java.io.File [Ambiguous constructor argument types]

  10. 10

    Error regarding creating a jar file for spark scala

  11. 11

    database attachement when creating .jar file

  12. 12

    Regarding org.apache.spark.sql.AnalysisException error when creating a jar file using Scala

  13. 13

    Jpackage 'invalid option [class]' error when creating linux DEB form a jar file

  14. 14

    Error while running jar file on system

  15. 15

    Jenkins configuration Error in running the jar file

  16. 16

    Error in running jar file of spring boot application

  17. 17

    Serilog not creating log file when running on Linux

  18. 18

    Jar file not working (filenotfoundexception when running in cmd)

  19. 19

    NoClassDefFoundError when running Scala jar file

  20. 20

    Issue with main when running jar file

  21. 21

    .jar not running when passed valid file in args

  22. 22

    JavaFX runtime exceptions when running .jar file

  23. 23

    Unable to Access Jar File When Running Akka

  24. 24

    Database not updating when running from .jar file

  25. 25

    Error running pod install when Creating schemes

  26. 26

    got error when I am running Jar file. IllegalStateException: Location is not set

  27. 27

    2: No such directory error when running jar from bat file using scheduler

  28. 28

    Java properties file in jar not found when running jar

  29. 29

    UnsatisfiedLinkError running .jar of alljoyn project, no error when running in Eclipse

HotTag

Archive