我们在生产中有 tomcat 9 Web 服务器。我们面临的问题是,如果 tomcat 收到任何格式错误的 URL,我们希望为我们的应用程序显示自定义错误页面,如下所示
或者
我在tomcat应用服务器的web.xml中添加了error page标签如下
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
我们在tomcat的webapps目录下的应用程序ROOT文件夹中有error.html。
每当用户尝试请求任何不存在的网页时,他都会收到与上面指定的 404 错误代码正确对应的错误页面。
真正的问题是当用户在浏览器中输入格式错误的 URL(如http://URL/|)时,tomcat 无法重定向到 error.html 。
Tomcat 显示的是默认的 400 bad request 错误页面,而不是自定义错误页面。
假设我的接口扩展CrudRepository如下
@Repository
public interface EmployeeRepository extends CrudRepository<Employee, Integer>
{
}
Run Code Online (Sandbox Code Playgroud)
我在Service类中使用EmployeeRepository接口,如下所示
@Service
public class EmployeeService
{
@Autowired
EmployeeRepository employeeRepository;
public List<Employee> getAllEmployee()
{
List<Employee> listEmp=new ArrayList<Employee>();
employeeRepository.findAll().forEach(listEmp::add);
return listEmp;
}
}
Run Code Online (Sandbox Code Playgroud)
和控制器如下
@RestController
public class WelcomeController
{
@Autowired
EmployeeService empservice;
@RequestMapping("/employees")
public List<Employee> getEmployees()
{
return empservice.getAllEmployee();
}
}
Run Code Online (Sandbox Code Playgroud)
它给出了以下例外
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'welcomeController'的bean时出错:通过字段'empservice'表示的不满意的依赖关系:创建名为'employeeService'的bean时出错:通过字段'employeeRepository'表示的不满意的依赖关系
错误很明显,因为任何类都没有实现接口EmployeeRepository
@Autowired
EmployeeRepository employeeRepository;
Run Code Online (Sandbox Code Playgroud)
自动装配将失败,因为没有类正在实施employeeRepository.
尽管如此,我对它如何工作感到困惑,因为我在GitHub和教程上看到的每个代码都运行得很好.
我在哪里出错了@Autowired如何处理扩展CrudRepository的接口,即使没有类正在实现它; 这是自动装配的基本规则?也就是说,如果您要自动连接任何接口,那么至少有一个类必须实现该接口,然后自动装配将成功.
在我的新项目中,我将包括google recaptcha.我的问题相当简单,即使我们做客户端验证用户不是机器人,即使建议进行服务器端验证.我想知道为什么有必要为google recaptcha进行服务器端验证?它是如何添加额外的安全层的?如何在弹簧安全的春季启动?
我从jdbcTemplate执行以下查询时遇到异常
update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?
Run Code Online (Sandbox Code Playgroud)
以下是例外
org.springframework.jdbc.UncategorizedSQLException:PreparedStatementCallback; 未分类SQL的SQLException [更新TEMP_BRD_STATS SET STATS = null WHERE BRDC_STAT_ID =?]; SQL状态[null]; 错误代码[0]; ORA-00900:无效的SQL语句
TEMP_BRD_STATS是我的表名,STATS和BRDC_STAT_ID是我表中的列
注意: - STATS列允许使用null
但是,我可以通过提供有效的BRDC_STAT_ID列值在sql developer中成功执行查询.
例如
update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=523;
Run Code Online (Sandbox Code Playgroud)
编辑:以下是JAVA代码
result = this.jdbcTemplate.query("update TEMP_BRD_STATS SET STATS=null WHERE BRDC_STAT_ID=?", new Object[] {523}, new QueryResultSetExtractor());
Run Code Online (Sandbox Code Playgroud)
尽管抛出了异常,但在执行上述代码后,列值会发生变化.
假设我的列STATS具有'SUCCESS'值并且在执行上面的java代码之后值变为null但仍然抛出异常.一种奇怪的场景.
我正在尝试从远程存储库 git clone 到本地存储库。每当我输入 git clone 命令并输入我的用户名和密码时,我都会收到以下错误。
此应用程序需要以下版本的 .NET Framework 之一:.NET Framework,版本 =v4.7.2
我的Windows版本是:8
我当前的.NET版本是:4.6.01055
我怀疑 git credential manager 导致了这个问题。
有没有办法在 Windows 8 上将 .NET Framework 版本从 4.6.01055 升级到 v4.7.2?
spring-boot ×2
.net ×1
autowired ×1
bad-request ×1
java ×1
jdbctemplate ×1
oracle ×1
recaptcha ×1
redirect ×1
spring ×1
spring-data ×1
tomcat ×1
tomcat9 ×1
validation ×1
windows ×1
windows-8 ×1