Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SPRING BOOT(SOAP服务)连接到Oracle数据库时出现问题_Java_Oracle_Spring Boot_Docker_Soap - Fatal编程技术网

Java 使用SPRING BOOT(SOAP服务)连接到Oracle数据库时出现问题

Java 使用SPRING BOOT(SOAP服务)连接到Oracle数据库时出现问题,java,oracle,spring-boot,docker,soap,Java,Oracle,Spring Boot,Docker,Soap,早上好,我是spring boot新手,我正在构建一个SOAP服务,该服务允许查询ORACLE数据库(位于容器中),但我面临以下无法解决的错误: ***************************应用程序无法启动 说明: 中构造函数的参数0 org.springframework.boot.autoconfigure.orm.jpa.hibernatejpa自动配置 需要一个类型为“javax.sql.DataSource”的bean,该bean无法 建立 -未加载Bean方法“dataS

早上好,我是spring boot新手,我正在构建一个SOAP服务,该服务允许查询ORACLE数据库(位于容器中),但我面临以下无法解决的错误:

***************************应用程序无法启动


说明:

中构造函数的参数0 org.springframework.boot.autoconfigure.orm.jpa.hibernatejpa自动配置 需要一个类型为“javax.sql.DataSource”的bean,该bean无法 建立 -未加载Bean方法“dataSource”,因为@ConditionalOnProperty(spring.dataSource.jndi name)未找到属性“jndi name” -未加载Bean方法“dataSource”,因为@ConditionalOnBean(类型:org.springframework.boot.jta.XADataSourceWrapper; SearchStrategy:all)未找到任何类型的bean org.springframework.boot.jta.XADataSourceWrapper

行动:

考虑重新访问上述条件或定义类型为的bean 配置中的“javax.sql.DataSource”

附件我的代码结构:

SpringBootSoapApp.java

package com.example.conexion.soap_service_example;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class SpringBootSoapApp {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootSoapApp.class, args);
    }
}
Cliente.java

package com.example.conexion.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Cliente {

    @Id
    @Column(name="CEDULA")
    private int cedula;
    @Column(name="NOMBRE")
    private String nombre;
    @Column(name="APELLIDO")
    private String apellido;
    @Column(name="TIPO_CLIENTE")
    private String tipo_cliente;

    // Getter y Setters
    public int getCedula() {
        return cedula;
    }
    public void setCedula(int cedula) {
        this.cedula = cedula;
    }
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public String getApellido() {
        return apellido;
    }
    public void setApellido(String apellido) {
        this.apellido = apellido;
    }
    public String getTipo_cliente() {
        return tipo_cliente;
    }
    public void setTipo_cliente(String tipo_cliente) {
        this.tipo_cliente = tipo_cliente;
    }


}
ClienteService.java

package com.example.conexion.service;
import com.example.conexion.entity.Cliente;
import java.util.List;


public interface ClienteService {

    public Cliente getClienteById(long id);
    public List<Cliente> getAllClientes();
}
cliente.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://www.javaspringclub.com/movies-ws"
    targetNamespace="http://www.javaspringclub.com/movies-ws"
    elementFormDefault="qualified">

    <xs:element name="getClienteByIdRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="clienteCedula" type="xs:long" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="getClienteByIdResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="clienteType" type="tns:clienteType" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="clienteType">
        <xs:sequence>
            <xs:element name="cedula" type="xs:int" />
            <xs:element name="name" type="xs:string" />
            <xs:element name="apellido" type="xs:string" />
            <xs:element name="tipo_cliente" type="xs:string" />
        </xs:sequence>
    </xs:complexType>

 <xs:element name="getAllClientesRequest">
        <xs:complexType/>
    </xs:element>    
    <xs:element name="getAllClientesResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="clienteType" type="tns:clienteType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>    
pom.xml

<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.example.conexion</groupId>
  <artifactId>soap-service-example</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>soap-service-example</name>
  <url>http://maven.apache.org</url>

  <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
  </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.M4</version>
        <relativePath /> <!-- lookup parent from repository -->
      </parent> 

      <dependencies>
            <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.0-api</artifactId>
                <version>1.0.1.Final</version>
            </dependency>
            <dependency>
                <groupId>javax.persistence</groupId>
                 <artifactId>persistence-api</artifactId>
                 <version>1.0.2</version>
             </dependency>  
             <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web-services</artifactId>
                </dependency>
            <dependency>
                <groupId>com.oracle.jdbc</groupId>
                <artifactId>ojdbc8</artifactId>
                <version>12.2.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jdbc</artifactId>
                <version>2.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>   
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                </dependency>

      </dependencies>

      <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxb2-maven-plugin</artifactId>
                    <version>2.5.0</version>
                    <executions>
                        <execution>
                            <id>xjc-schema</id>
                            <goals>
                                <goal>xjc</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <sources>
                            <source>src/resources/cliente.xsd</source>
                        </sources>
                        <packageName>com.example.conexion.ws</packageName>
                        <schemaDirectory>${project.basedir}/src/main/resources/</schemaDirectory>
                        <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
                        <clearOutputDir>false</clearOutputDir>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                      <source>1.8</source>
                      <target>1.8</target>
                    </configuration>
                  </plugin>
            </plugins>
        </build>
        <repositories>
            <!-- Repository for ORACLE JDBC Driver -->
            <repository>
                <id>codelds</id>
                <url>https://code.lds.org/nexus/content/groups/main-repo</url>
            </repository>
                <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
            <pluginRepository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
</project>

4.0.0
com.example.conexion

您可以从sqldeveloper甚至从java平静地连接到数据库


更新:在spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver行中更正,但我仍然有相同的问题

我发现您的配置中有一个输入错误 行->spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver
应该是->spring.datasource.driver class name=oracle.jdbc.driver.OracleDriver

您需要添加一个连接到数据库的配置。如果您使用的是application.yml,它们通常出现在spring->datasourcewhere下?数据库配置位于application.properties文件中,您在问题描述中发布的。这可能是由于您的应用程序中的输入错误造成的。属性:spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver缺少等号。更改后我仍然有相同的问题。您可以将SpringBootSoapApp.java移到基本级别的包级别吗。在您的情况下,
来吧。example.conexion
。Spring通常在
@SpringBootApplication
注释存在的级别执行组件扫描,直到我仍然有相同的问题
package com.example.conexion.config;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.ws.config.annotation.EnableWs;
import org.springframework.ws.config.annotation.WsConfigurerAdapter;
import org.springframework.ws.transport.http.MessageDispatcherServlet;
import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
import org.springframework.xml.xsd.SimpleXsdSchema;
import org.springframework.xml.xsd.XsdSchema;
import com.example.conexion.endpoint.ClienteEndpoint;

@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {

     @SuppressWarnings({ "rawtypes", "unchecked" })
        @Bean
        public ServletRegistrationBean messageDispatcherServlet(ApplicationContext appContext){
            MessageDispatcherServlet servlet = new MessageDispatcherServlet();
            servlet.setApplicationContext(appContext);
            servlet.setTransformWsdlLocations(true);
            return new ServletRegistrationBean(servlet, "/ws/*");
        }

        // localhost:8080/ws/movies.wsdl
        @Bean(name = "clientes")
        public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema schema){
            DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
            wsdl11Definition.setPortTypeName("ClientesPort");
            wsdl11Definition.setLocationUri("/ws");
            wsdl11Definition.setTargetNamespace(ClienteEndpoint.NAMESPACE_URI);
            wsdl11Definition.setSchema(schema);
            return wsdl11Definition;
        }

        @Bean
        public XsdSchema moviesSchema(){
            return new SimpleXsdSchema(new ClassPathResource("cliente.xsd"));
        }
}
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://www.javaspringclub.com/movies-ws"
    targetNamespace="http://www.javaspringclub.com/movies-ws"
    elementFormDefault="qualified">

    <xs:element name="getClienteByIdRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="clienteCedula" type="xs:long" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="getClienteByIdResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="clienteType" type="tns:clienteType" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="clienteType">
        <xs:sequence>
            <xs:element name="cedula" type="xs:int" />
            <xs:element name="name" type="xs:string" />
            <xs:element name="apellido" type="xs:string" />
            <xs:element name="tipo_cliente" type="xs:string" />
        </xs:sequence>
    </xs:complexType>

 <xs:element name="getAllClientesRequest">
        <xs:complexType/>
    </xs:element>    
    <xs:element name="getAllClientesResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="clienteType" type="tns:clienteType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>    
# Oracle settings

spring.datasource.url=jdbc:oracle:thin:@//10.164.7.203:1521/ORCLPDB1.localdomain
spring.datasource.username=cesar
spring.datasource.password=xxxxx123
spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver

spring.main.banner-mode=off

spring.jpa.hibernate.ddl-auto=update
<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.example.conexion</groupId>
  <artifactId>soap-service-example</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>soap-service-example</name>
  <url>http://maven.apache.org</url>

  <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
  </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.M4</version>
        <relativePath /> <!-- lookup parent from repository -->
      </parent> 

      <dependencies>
            <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.0-api</artifactId>
                <version>1.0.1.Final</version>
            </dependency>
            <dependency>
                <groupId>javax.persistence</groupId>
                 <artifactId>persistence-api</artifactId>
                 <version>1.0.2</version>
             </dependency>  
             <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web-services</artifactId>
                </dependency>
            <dependency>
                <groupId>com.oracle.jdbc</groupId>
                <artifactId>ojdbc8</artifactId>
                <version>12.2.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jdbc</artifactId>
                <version>2.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>   
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                </dependency>

      </dependencies>

      <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxb2-maven-plugin</artifactId>
                    <version>2.5.0</version>
                    <executions>
                        <execution>
                            <id>xjc-schema</id>
                            <goals>
                                <goal>xjc</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <sources>
                            <source>src/resources/cliente.xsd</source>
                        </sources>
                        <packageName>com.example.conexion.ws</packageName>
                        <schemaDirectory>${project.basedir}/src/main/resources/</schemaDirectory>
                        <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
                        <clearOutputDir>false</clearOutputDir>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                      <source>1.8</source>
                      <target>1.8</target>
                    </configuration>
                  </plugin>
            </plugins>
        </build>
        <repositories>
            <!-- Repository for ORACLE JDBC Driver -->
            <repository>
                <id>codelds</id>
                <url>https://code.lds.org/nexus/content/groups/main-repo</url>
            </repository>
                <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
            <pluginRepository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
</project>