从Hybris 6.5升级到6.6的问题

2020-09-24 19:25发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当我刚从Hybris 6.5升级到Hybris 6.6时,Solr无法启动。 调试时,我在AbstractSolrServerController中看到您已添加身份验证支持。

我们现在是否需要对solrServer进行身份验证,因为如果没有,它会尝试在此处进行其他情况:

  if(" basic" .equalsIgnoreCase(authType)&& StringUtils.isNotBlank(user)&& StringUtils.isNotBlank(password)){
              processBuilder.environment()。put(" SOLR_AUTH_TYPE",authType);
              processBuilder.environment()。put(" SOLR_AUTHENTICATION_OPTS"," -Dbasicauth =" +用户+":" +密码);
          }其他{
              processBuilder.environment()。put(" SOLR_AUTH_TYPE",(对象)为空);
              processBuilder.environment()。put(" SOLR_AUTHENTICATION_OPTS",(对象)为空);
          }

  

因此它运行带有null的put,这将依次执行以下操作:

 公共字符串put(String var1,String var2){
          返回(String)super.put(validateName(var1),validateValue(var2));
      }

  

请注意var2上的validateValue方法。 它不是null安全的,但如果我们未设置任何solr身份验证,则您将传递null:

 私有静态字符串validateValue(String var0){
          如果(var0.indexOf(0)!= -1){
              抛出新的IllegalArgumentException("无效的环境变量值:\"" + var0 +" \"");
          }其他{
              返回var0;
          }
      }

  

因此,由于我们没有进行任何身份验证,因此它尝试对null进行indexOf,从而抛出nullpointer异常。 所以....在Hybris 6.6中,您需要设置solr身份验证吗? 还是我错过了什么?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当我刚从Hybris 6.5升级到Hybris 6.6时,Solr无法启动。 调试时,我在AbstractSolrServerController中看到您已添加身份验证支持。

我们现在是否需要对solrServer进行身份验证,因为如果没有,它会尝试在此处进行其他情况:

  if(" basic" .equalsIgnoreCase(authType)&& StringUtils.isNotBlank(user)&& StringUtils.isNotBlank(password)){
              processBuilder.environment()。put(" SOLR_AUTH_TYPE",authType);
              processBuilder.environment()。put(" SOLR_AUTHENTICATION_OPTS"," -Dbasicauth =" +用户+":" +密码);
          }其他{
              processBuilder.environment()。put(" SOLR_AUTH_TYPE",(对象)为空);
              processBuilder.environment()。put(" SOLR_AUTHENTICATION_OPTS",(对象)为空);
          }

  

因此它运行带有null的put,这将依次执行以下操作:

 公共字符串put(String var1,String var2){
          返回(String)super.put(validateName(var1),validateValue(var2));
      }

  

请注意var2上的validateValue方法。 它不是null安全的,但如果我们未设置任何solr身份验证,则您将传递null:

 私有静态字符串validateValue(String var0){
          如果(var0.indexOf(0)!= -1){
              抛出新的IllegalArgumentException("无效的环境变量值:\"" + var0 +" \"");
          }其他{
              返回var0;
          }
      }

  

因此,由于我们没有进行任何身份验证,因此它尝试对null进行indexOf,从而抛出nullpointer异常。 所以....在Hybris 6.6中,您需要设置solr身份验证吗? 还是我错过了什么?

付费偷看设置
发送
8条回答
黑丝骑士
1楼 · 2020-09-24 20:21.采纳回答

此问题已在Hybris 6.7中修复。 考虑到问题已解决。

Nan4612
2楼-- · 2020-09-24 20:04

我遇到了同样的问题。 从hybrys到此问题的声明,这将是很好的。

宇峰
3楼-- · 2020-09-24 19:58

嗨,

通过将以下属性添加到local.properties来禁用ssl,然后solr将启动

solrserver.instances.default.ssl.enabled = false

问候,拉姆

软件心理学工程师
4楼-- · 2020-09-24 20:05

嗨安吉洛,

在执行impex更新这些字段之前,我已修复所有启动错误。

另一种选择是更新数据库中表solrserverconfig中的新字段,问题是这些属性已编码。

My梦
5楼-- · 2020-09-24 19:59

我找到了解决方案,需要进行更新 与可以执行索引任务的用户相关的SolrServerConfig的属性:

  INSERT_UPDATE SolrServerConfig; 名称[unique = true];模式(代码);用户名;密码; indexingUsername; indexingPassword;  ; $ serverConfigName; standalone; solrclient; client123;  solrindexingclient; indexingclient123;


  
haha101010
6楼-- · 2020-09-24 20:20

否。 我们只是推迟了升级,希望Hybris可以解决它或像我们报告的其他一些bug一样解释它。 尽管Hybris开发团队在这里享有一定声誉,所以我们与Hybris合作超过两年已经不再抱有太大希望。

Nir深蓝
7楼-- · 2020-09-24 20:22

我们仅添加了以下属性即可使用。 然后也有必要在impex中更新solr config。 没有设置有效的auth方法,我也无法启动服务器。

但是也许这是一个hybris bug,没有设置身份验证。 他们有一个指南( https://help.hybris.com/6.6.0/ hcd/21f689cf7c71485c9a45df03c74064e6.html )中,他们描述了如何处理它,但对我不起作用: alt 文字

 在此处输入代码solrserver.instances.default.autostart = true
  solrserver.instances.default.mode =独立
  solrserver.instances.default.hostname =本地主机
  solrserver.instances.default.port = 8983
  solrserver.instances.default.memory = 512m
  solrserver.instances.default.authtype =基本
  solrserver.instances.default.user = solrserver
  solrserver.instances.default.password =服务器123
  solrserver.instances.default.ssl.enabled = false
  solrserver.instances.default.ssl.keyStorePassword =
  solrserver.instances.default.ssl.trustStorePassword =

  INSERT_UPDATE SolrServerConfig; 名称[unique = true];模式(代码);用户名;密码; indexingUsername; indexingPassword;  ; $ serverConfigName; standalone; solrclient; client123;  solrindexingclient; indexingclient123;

  

一周热门 更多>