我有一个抽象类Monitor.java,它由Class EmailMonitor.java子类化.
方法:
public abstract List<? extends MonitorAccount> performMonitor(List<? extends MonitorAccount> accounts)
Run Code Online (Sandbox Code Playgroud)
在Monitor.java中定义,必须在EmailMonitor.java中重写.
我目前在EmailMonitor.java中重写了如下方法:
@Override
public List<EmailAccount> performMonitor(List<EmailAccount> emailAccounts) {
//...unrelated logic
return emailAccounts;
}
Run Code Online (Sandbox Code Playgroud)
但是,这会产生编译时错误:
Name clash: The method performMonitor(List<EmailAccount>) of type EmailMonitor has the same erasure as performMonitor(Lis<? extends MonitorAccount> emailAccounts) of type Monitor but does not override it
EmailAccount是一个子类MonitorAccount,所以(至少在我看来)以这种方式覆盖它是完全有道理的.虽然编译器对我的逻辑不满意,但是如何在保持编译时检查以确保所有调用EmailMonitor.performMonitor()接收列表EmailAccount而不是其他类型的MonitorAccount?
背景
因此我有一台服务器运行隐藏在Apache代理后面的tomcat应用程序.代理提供了更加用户友好的URL以及具有自动重定向的SSL加密,因此只能通过https访问该应用程序.
我正忙着将它迁移到nginx代理.
我遇到的一个问题是,在登录时,我的应用程序以http的形式发回一个"LocationAfterLogon"标题.
http://192.168.x.x:8080/myapp/index.jsp.
Run Code Online (Sandbox Code Playgroud)
返回的IP地址来自在互联网上不可见的代理服务器.因此,浏览器尝试导航到它时会出现连接错误.
作为一种解决方法,我使用了nginx指令:
所以我的配置如下所示
#header for location after logon of demo app
add_header LocationAfterLogon http://example.com/demo/index.jsp;
#hide the real LocationAfterLogon
proxy_hide_header LocationAfterLogon;
Run Code Online (Sandbox Code Playgroud)
问题
我需要能够在LocationAfterLogon上进行正则表达式替换或类似操作,因为它并不总是指向index.jsp,具体取决于登录页面拦截了哪个URL.
我知道我也可以重写tomcat应用程序来发回相对URL,但我想在nginx配置中完成所有操作.
我也读过关于nginx more_set_headers的内容.尚未尝试过.它允许我编辑标题吗?
Apache有我之前使用的Header编辑指令,所以我正在寻找类似的东西.
TL; DR
是否可以使用正则表达式替换或在Nginx中类似编辑标题位置?
由于最近在IE8中添加了"功能",其中新窗口自动与单个会话相关联,因此我们的一些代码表现不正常.
这是因为单独的应用程序会在激活时启动新的IE窗口,一旦用户完成,请关闭窗口.这在IE7中运行良好,因为窗口中的会话信息保持独立.但是在IE8中,由于会话在IE窗口之间共享,我们发现"弹出"应用程序会破坏第一个应用程序上的会话.
我已经阅读了有关nomerge开关的信息,因此这是一种解决方法,但我想知道是否有办法将解决方案用于vbscript的"CreateObject"; 即:
Dim ieWin As Object
Set ieWin = CreateObject("InternetExplorer.Application")
Run Code Online (Sandbox Code Playgroud)
有没有办法在调用CreateObject函数时发送参数?
我正在努力通过SDR公开我的Spring数据存储库.当我导航到我的休息URL(http:// localhost:8080/trxes)时,我收到一个错误:{"cause":null,"message":"PersistentEntity不能为空!"}
仔细检查一下spring数据源,我看到getRepositoryFactoryInfoFor()方法返回空的存储库信息,即
private RepositoryFactoryInformation<Object, Serializable> getRepositoryFactoryInfoFor(Class<?> domainClass) {
Assert.notNull(domainClass, "Domain class must not be null!");
RepositoryFactoryInformation<Object, Serializable> repositoryInfo = repositoryFactoryInfos.get(ClassUtils
.getUserClass(domainClass));
return repositoryInfo == null ? EMPTY_REPOSITORY_FACTORY_INFO : repositoryInfo;
}
Run Code Online (Sandbox Code Playgroud)
我的问题的可能原因是我的持久化实体继承自单个基类,我使用单表策略如下:
数据库中有一个TRX表,具有匹配的Trx类.VariableIncome,VariableExpense,FixedIncome和FixedExpense都继承自Trx并持久保存到TRX表.
@Entity
@Table(name = "TRX")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TRX_TYPE", discriminatorType = DiscriminatorType.STRING)
abstract public class Trx extends AbstractPersistable<Long> {
Run Code Online (Sandbox Code Playgroud)
所有子类看起来类似于下面显示的VariableIncome:
@Entity
@DiscriminatorValue("VARIABLE_INCOME")
public class VariableIncome extends Trx {
Run Code Online (Sandbox Code Playgroud)
我的存储库设置是(此类没有注释):
public interface TrxRepository extends CrudRepository<Trx, Long> {
Run Code Online (Sandbox Code Playgroud)
我运行描述的设置:
@SpringBootApplication
public class RestApplication {
public …Run Code Online (Sandbox Code Playgroud)