- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下午好,我尝试使用 Spring Boot 运行 SOAP 服务,但收到以下错误:
*************************** APPLICATION FAILED TO START
Description:
Parameter 0 of constructor in com.example.conexion.service.ClienteServiceImpl required a bean of type 'com.example.conexion.repository.ClienteRepository' that could not be found.
Action:
Consider defining a bean of type 'com.example.conexion.repository.ClienteRepository' in your configuration.
我知道这也许是一个愚蠢的错误,但我不明白
附上我的代码:
SpringBootSoapApp.java
package com.example.conexion;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class SpringBootSoapApp {
public static void main(String[] args) {
SpringApplication.run(SpringBootSoapApp.class, args);
}
}
WebServiceConfig.java
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"));
}
}
ClienteEndpoint.java
package com.example.conexion.endpoint;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
import com.example.conexion.entity.Cliente;
import com.example.conexion.service.ClienteService;
import com.example.conexion.gs_ws.ClienteType;
import com.example.conexion.gs_ws.GetAllClientesRequest;
import com.example.conexion.gs_ws.GetAllClientesResponse;
import com.example.conexion.gs_ws.GetClienteByIdRequest;
import com.example.conexion.gs_ws.GetClienteByIdResponse;
@Endpoint
public class ClienteEndpoint {
public static final String NAMESPACE_URI = "http://www.javaspringclub.com/movies-ws";
private ClienteService service;
public ClienteEndpoint() {
}
@Autowired
public ClienteEndpoint(ClienteService service) {
this.service = service;
}
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getClienteByIdRequest")
@ResponsePayload
public GetClienteByIdResponse getMovieById(@RequestPayload GetClienteByIdRequest request) {
GetClienteByIdResponse response = new GetClienteByIdResponse();
Cliente clienteEntity = service.getClienteById(request.getClienteCedula());
ClienteType clienteType = new ClienteType();
BeanUtils.copyProperties(clienteEntity, clienteType);
response.setClienteType(clienteType);
return response;
}
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getAllClientesRequest")
@ResponsePayload
public GetAllClientesResponse getAllMovies(@RequestPayload GetAllClientesRequest request) {
GetAllClientesResponse response = new GetAllClientesResponse();
List<ClienteType> clienteTypeList = new ArrayList<ClienteType>();
List<Cliente> clienteEntityList = service.getAllClientes();
for (Cliente cliente : clienteEntityList) {
ClienteType clienteType = new ClienteType();
BeanUtils.copyProperties(cliente, clienteType);
clienteTypeList.add(clienteType);
}
response.getClienteType().addAll(clienteTypeList);
return response;
}
}
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;
}
}
ClienteRespository.java
package com.example.conexion.repository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import com.example.conexion.entity.Cliente;
@Repository
public interface ClienteRepository extends CrudRepository <Cliente,Integer> {
public Cliente findById(int cedula);
}
ClienteService.java
package com.example.conexion.service;
import com.example.conexion.entity.Cliente;
import java.util.List;
public interface ClienteService {
public Cliente getClienteById(int id);
public List<Cliente> getAllClientes();
}
ClienteServiceImpl.java
package com.example.conexion.service;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.conexion.service.ClienteService;
import com.example.conexion.entity.Cliente;
import com.example.conexion.repository.ClienteRepository;
@Service
@Transactional
public class ClienteServiceImpl implements ClienteService {
private ClienteRepository repository;
public ClienteServiceImpl() {
}
@Autowired
public ClienteServiceImpl(ClienteRepository repository) {
this.repository = repository;
}
@Override
public Cliente getClienteById(int cedula) {
return this.repository.findById(cedula);
}
@Override
public List<Cliente> getAllClientes() {
List<Cliente> list = new ArrayList<>();
repository.findAll().forEach(e -> list.add(e));
return list;
}
}
cliente.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.javaspringclub.com/clientes-ws"
targetNamespace="http://www.javaspringclub.com/clientes-ws"
elementFormDefault="qualified">
<xs:element name="getClienteByIdRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="clienteCedula" type="xs:int" />
</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=xxxxxx123
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.jpa.hibernate.ddl-auto=update
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 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>
<description>WebService Example</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</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>
<executions>
<execution>
<id>xjc-schema</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<sources>
<source>src/resources/xsd/clientes.xsd</source>
</sources>
<packageName>com.example.conexion.gs_ws</packageName>
<clearOutputDir>false</clearOutputDir>
</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>
我的项目结构
我正在尝试遵循这个示例:https://www.javaspringclub.com/publish-and-consume-soap-web-services-using-spring-boot-part-1/ ,但是要连接到容器中的oracle数据库,并且我已经测试过该数据库的连接,我对spring boot还比较陌生
最佳答案
WSDL 部分并不完全相关,但我不知道您在哪里配置存储库 bean。您需要为其添加一个配置类。
例如:
@Configuration
@EntityScan(basePackageClasses = Cliente.class)
@EnableJpaRepositories(basePackageClasses = ClienteRepository.class)
public class ClienteRepositoryConfiguration{}
@EntityScan
用于定义哪些类代表数据库中的数据,@EnableJpaRepositories
定义您的一个或多个存储库。
关于java - 考虑在您的配置中定义类型为 'com.example.conexion.repository.ClienteRepository' 的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60119592/
我正在使用 Mechanize 配置 ssl , 根据 document我需要设置 agent.cert = 'example.cer' agent.key='example.cer' 但是我怎样才能
我有一个表格,允许人们将士兵添加到列表中,该列表可以很好地传输到 mysql。如果我在没有变量的情况下这样做甚至很好,但是一旦我尝试添加一个如下所示。 // Get Variable from Loc
使用 .htaccess 重写,我想要: http://example.com 重定向到:http://www.example.comhttps://www.example.com 重定向到:http
我想将所有流量重定向到 https://www.sitename.com 例子 http://sitename.com --> https://www.sitename.com http://www.
我只有 example.com 的 SSL 证书,并且想同时重定向 http://example.com和 http://*.example.com 到 https://example.com使用 n
我有服务器 A,它托管我们在 www.example.com 上的主要站点;我们有一个涵盖 *.example.com 的 SSL 证书。 在我们网站的安全部分,我们希望向我们编写并托管在单独机器/I
我正在努力平衡多行上的一些文本,并且我正在添加手动换行符以将文本均匀地分割在各行上。为了弄清楚这一点,我需要查看在哪里添加“\n”来测试我的代码,但我发现的唯一方法是将其全部打印为字符: ["T",
我在我们的域中安装了 Apache 和 Tomcat 服务器,因为我有超过 25 个服务,一些服务由 Apache 处理,一些服务由 Tomcat 处理。 tomcat 服务显示 http://exa
编辑:问题终于解决了。详细信息可以在此消息末尾的疑难解答部分中找到。 我在这里保留了详细的步骤,以防可能对某人有所帮助。 设置OpenLDAP I-创建服务器 该文档通常已经过时,并且您会找到多种实现
这个问题在这里已经有了答案: offsetting an html anchor to adjust for fixed header [duplicate] (28 个答案) 关闭 8 年前。
目前谷歌将我的网站链接显示为... example.com/ ...但是,我希望它显示为... example.com 我确实有以下元数据 ...下面是我的 htaccess 文件... Index
我使用 Microsoft Visual Studio 2012。当我将代码示例放入 C# 类/方法的 XML 注释中时,我想知道:引用我的程序集的用户将如何看到该代码示例? 我试图引用我自己的程序集
我对正则表达式还很陌生,无法真正弄清楚它是如何工作的。我试过这个: function change_email($email){ return preg_match('/^[\w]$/', $e
我正在使用 Hibernate 版本 4.3.5.Final。这里的问题是 Hibernate 找到 Foo 类型的实体,其中属性 address 的大小写不同(例如“BLAFOO”)。但是,在我的示
我为环境特定变量(如用户名和密码)设置了一个环境 YAML 文件。要在我的应用程序中使用这些变量,我需要使用 APP_CONFIG['username']而不是 APP_CONFIG[:usernam
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
这个问题在这里已经有了答案: Does Python have a string 'contains' substring method? (10 个答案) 关闭 8 年前。 我想检查发件人 hea
我已经在 https://arieldemian.it 上配置了 SSL/TLS但似乎https://www.arieldemian.it不安全。这是为什么?我需要注册他们两个吗?我正在使用 http
当我使用 ProGuard 时,com.example.** 和 com.example.**{*;} 之间的区别是什么?例如,每种情况会发生什么情况? -keep class com.examp
我的主页的内容是根据使用 slug“home”对数据库的查询提取的。例如,如果我在地址栏中输入 example.com/home,它会根据看到的“/home”查询数据库并提取正确的内容(使用变量“$p
我是一名优秀的程序员,十分优秀!