精华内容
下载资源
问答
  • E/flutter (17545): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized. E/flutt...

    flutter sdk升级遇到的异常:

    E/flutter (17545): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: ServicesBinding.defaultBinaryMessenger was accessed before the binding was initialized.
    E/flutter (17545): If you're running an application and need to access the binary messenger before `runApp()` has been called (for example, during plugin initialization), then you need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()` first.
    E/flutter (17545): If you're running a test, you can call the `TestWidgetsFlutterBinding.ensureInitialized()` as the first line in your test's `main()` method to initialize the binding.
    E/flutter (17545): #0      defaultBinaryMessenger.<anonymous closure> (package:flutter/src/services/binary_messenger.dart:76:7)
    E/flutter (17545): #1      defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4)
    E/flutter (17545): #2      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62)
    E/flutter (17545): #3      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:35)
    E/flutter (17545): #4      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:349:48)
    E/flutter (17545): #5      SharedPreferences._getSharedPreferencesMap (package:shared_preferences/shared_preferences.dart:158:25)
    E/flutter (17545): #6      SharedPreferences.getInstance (package:shared_preferences/shared_preferences.dart:25:17)
    E/flutter (17545): #7      getTheme (package:wanandroid_flutter/main.dart:41:50)
    E/flutter (17545): #8      main (package:wanandroid_flutter/main.dart:32:26)
    E/flutter (17545): #9      _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:239:25)
    E/flutter (17545): #10     _rootRun (dart:async/zone.dart:1126:13)
    E/flutter (17545): #11     _CustomZone.run (dart:async/zone.dart:1023:19)
    E/flutter (17545): #12     _runZoned (dart:async/zone.dart:1518:10)
    E/flutter (17545): #13     runZoned (dart:async/zone.dart:1502:12)
    E/flutter (17545): #14     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:231:5)
    E/flutter (17545): #15     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:307:19)
    E/flutter (17545): #16     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
    E/flutter (17545): 
    Lost connection to device.
    

    不要慌,这里着重看一下第二行:

    If you're running an application and need to access the binary messenger before `runApp()` has been called (for example, during plugin initialization), then you need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()` first.   yechaoa
    

    大意:在runApp()之前如果访问二进制文件或者初始化插件,需要先调用WidgetsFlutterBinding.ensureInitialized()


    ok,那就照着来吧

    void main() {
      WidgetsFlutterBinding.ensureInitialized();
      runApp(MyApp());
    }
    

    WidgetsFlutterBinding.ensureInitialized();这一行代码到底干啥的呢,WidgetsFlutterBinding字面意思呢,Widget和Flutter绑定,追溯一下源码看看:

    /// A concrete binding for applications based on the Widgets framework.
    ///
    /// This is the glue that binds the framework to the Flutter engine.
    class WidgetsFlutterBinding extends BindingBase with GestureBinding, ServicesBinding, SchedulerBinding, PaintingBinding, SemanticsBinding, RendererBinding, WidgetsBinding {
    
      /// Returns an instance of the [WidgetsBinding], creating and
      /// initializing it if necessary. If one is created, it will be a
      /// [WidgetsFlutterBinding]. If one was previously initialized, then
      /// it will at least implement [WidgetsBinding].
      ///
      /// You only need to call this method if you need the binding to be
      /// initialized before calling [runApp].
      ///
      /// In the `flutter_test` framework, [testWidgets] initializes the
      /// binding instance to a [TestWidgetsFlutterBinding], not a
      /// [WidgetsFlutterBinding].
      static WidgetsBinding ensureInitialized() {
        if (WidgetsBinding.instance == null)
          WidgetsFlutterBinding();
        return WidgetsBinding.instance;
      }
    }
    

    继承自BindingBase ,然后还有一堆手势绑定、服务绑定什么的,一看就是初始化操作,然后看中间有一段注释:

    You only need to call this method if you need the binding to be initialized before calling [runApp].

    不细翻译了,大意就是在需要的时候调用,那什么时候需要呢,回到开头,在访问二进制文件或者初始化插件的时候,需要在runApp()之前调用WidgetsFlutterBinding.ensureInitialized()


    ok,结束。


    展开全文
  • WAS集群搭建

    千次阅读 2018-12-05 10:12:43
    本例子选择WAS7版本的集群,生产环境其实基本上用F5集群,不推荐用WAS集群,避免复杂化,IHS与WAS建议一对一, 常见的架构如下:但是本案例IHS和AppServer放在同一台服务器上。HA配置也略。 1、找两台服务器,...

    本例子选择WAS7版本的集群,生产环境其实基本上用F5集群,不推荐用WAS集群,避免复杂化,IHS与WAS建议一对一,

    常见的架构如下:但是本案例IHS和AppServer放在同一台服务器上。HA配置也略。

    1、找两台服务器,这里有jqa和jqb,安装WAS,把介质上传至两台服务器中,还有pak的补丁包4个,这里选择41这个版本的补丁包。解压所有的tar包,

    在WAS目录下执行用root用户执行./install 命令,这里选择用xshell工具登录服务器,可以出现图形化界面。

     

    选择安装的目录,选择语言包,直接安装即可。

    安装完毕后进行补丁的安装,需要先安装打补丁的工具UpdateInstaller。如下图:

    也是选择安装的目录,直接下一步即可,安装完毕后,自动运行补丁包,如果不小心关掉了,可以cd到安装目录,直接运行

    ./update.sh出现打补丁的界面。

    按提示,第一个选择was的安装目录 /was7/IBM/WebSphere/AppServer ,第二个选择补丁的位置,/setup/was7setup/ 选择下一步,选择你看到的41补丁,直接安装即可。

    2、安装好了was后,安装IHS (IBM HTTPServer)

    在/setup/was7setup/IHS中执行 ./install

     

    选择安装位置 /was7/IBM/HTTPServer

     

    下面这一步注意,这个plug-in的名字取名为webserver1,(安装下一个plug-in的时候取名为webserver2)主机名为当前机器名称

    安装结束后,给IHS打补丁。与给WAS打补丁一样,

    完成后,选择relaunch,再给plug-in打补丁。选择如下目录

    完成后,同理安装服务器jqb上的IHS,且打补丁,注意:这里安装的plug-in取名为webserver2

    3、安装好了WAS和IHS,开始配置集群,首选建立Dmgr01,2个Custom01节点。如下:

    创建Dmgr01,只需要建一个Dmgr就可以。这里建立在jqa服务器上,这个Dmgr用于管理整个单元中的所有东西,包括集群,server,node等。

     

    在jqa上创建Custom01节点

    ./manageprofiles.sh -create -templatePath ../profileTemplates/managed -profileName Custom01 -nodeName jqaNode01 -cellName jqaNode01Cell -hostname jqa

    在jqb上创建Custom01节点

    ./manageprofiles.sh -create -templatePath ../profileTemplates/managed -profileName Custom01 -nodeName jqbNode01 -cellName jqbNode01Cell -hostname jqb

    在jqa和jqb服务器的/etc/hosts中把对方节点都添加进去,例如:

    启动Dmgr01

    在jqa节点上执行addNode命令,将当前node加入到Dmgr中去管理。jqa表示Dmgr所在的服务器的主机名。8879为Dmgr的soap端口号。

    ./addNode.sh jqa 8879 

    同理在jqb上执行addNode命令

    访问Dmgr的管理控制台,将两个IHS服务器加入到Dmgr里进行管理

    加jqa的IHS,名称为webserver1,此处的名称必须和你建的plug-in的名称一致。另外在加一个webserver2,选择jqb节点。

    选择之前你的插件安装位置。

    加入完成后,选择两个IHS,启动,这样就可以管理这个了

    开始创建集群:

    不要勾选配置HTTP会话内存到内存复制。

    输入第一个成员的名称server1,选择节点jqa,输入权重2。

    输入第二个成员的名称server2,选择节点jqb,输入权重2。点击添加。

    完成。保存。

    配置与同步节点更改,勾上,应用。

    启动这个集群,

     

    4、部署应用。

    选择新建应用程序,选择服务器远程端的,选择DefaultApplication.ear这个测试应用。

    默认选择下一步。

    按住shift建选择所有的server,点击应用。

     

    完成,保存。并与节点同步更改。

    启动你的应用程序

    在web服务器中,选择两个webserver,点击生成插件,再点击传播插件。

    重启一下所有server和IHS

    浏览器访问,注意下面三个地址,第一次访问在jqa上的9080服务器上,第二次访问在jqb上的9080服务器上,表示成功完成集群的搭建了。

    http://192.156.35.167/snoop/

    由于环境有限,本例子只有两个服务器搭建集群,正常会有2个web,2个app服务器,然后两个web做HA,保障srv-ip正常。

    对外提供srv-ip即可,即便一个web服务器挂掉,srv-ip切换至另外一个服务器上,也能正常访问,也能很好的利用集群中的各个节点的资源,服务器没有浪费情况。

    启动集群的顺序:

    cd /was7/profiles/Dmgr01/bin

    ./startManager.sh

    cd /was7/profiles/Custom01/bin

    ./startNode.sh

    ./startServer.sh s1

    在第二个节点上启动:

    cd /was7/profiles/Custom01/bin

    ./startNode.sh

    ./startServer.sh s2

    s1和s2是你创建集群时的server名称。

     

    展开全文
  • was应用服务器搭建

    万次阅读 2017-07-01 19:49:57
    WAS是典型的j2ee服务器,在开始WAS之前,了解一些j2ee的知识. J2EE全称为Java2 Platform Enterprise Edition J2EE平台本质上是一个分布式的服务器应用程序设计环境——一个Java环境,它提供了: 宿主应用的...

    一些j2ee知识

    WAS是典型的j2ee服务器,在开始WAS之前,了解一些j2ee的知识.

    J2EE全称为Java2 Platform  Enterprise Edition

    J2EE平台本质上是一个分布式的服务器应用程序设计环境——一个Java环境,它提供了:

    宿主应用的一个运行基础框架环境。一套用来创建应用的Java扩展API。

    大体上J2EE可以分成3个主要应用:Servlet/JSP,EJB,XML/Web Service 和一些支撑技术例如JDBC和JNDI.

    Servlet是运行在Web服务器上的程序,主要是处理Http(s)请求并作出响应,包括返回一个HTML页面或转交给其他URL处理。在来自Web浏览器或其他HTTP客户机的请求与HTTP服务器上的数据库或应用程序之间起一个中间层的作用。

    JSP(JavaServer Pages)是一种基于Java的脚本技术。在JSP 的众多优点之中,其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用 JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。最终会编译成class。

    EJB,全称Enterprise Java Bean。EJB 从技术上而言不是一种"产品" ,而是一个技术规范。

    一个ejb是由java开发的,可以部署的,服务器端的组件.其包括

    若干.java程序,

    一个xml格式的部署文件,

    一个j2ee容器的专门部署文件。

    EJB程序经过部署,在weblogic等容器上运行,自动实现中间件的特性






    3.WAS相关概念

    概要文件profile、应用服务器server、节点node、单元cell


    Profile是WAS 6.0版本之后才有的。其目的是将WAS本身的文件与用户的数据文件从物理上分离,加强管理,减少出错的可能性。安装好WAS之后不能直接来部署应用,首先要根据情况新建不同类型的Profile 。

    Profile类型:default、dmgr、managed

    default为默认的profile类型,单server模式中使用。

    Dmgr、managed 类型在集群模式中使用,不同的是dmgr是Deployment Manager 为分布式单元的所有元素的管理中心,而managed受dmgr管控,其本质上是节点node。


    Server是最小的处理单元

    Node是一个或者多个Server的分组,Node只能在一台物理机器上存在,不能跨机器

    Node基本上等同于Profile,Node是管理概念,而Profile是实际的概要文件

    Cell是一个或者多个Node的分组,是最大作用域。

    Cell保留它所管辖的所有Node的配置,Node的配置以Cell的配置为准。

    NodeAgent:在集群环境下,DM(Deployment Manager Server )可以透过NodeAgent对Node中的Server进行管理

    如果不是集群环境,则一个Node下面只能有一个Server,可以创建多个profile来做到单机多server。

    如图

    wKiom1NPjs2BSwulAADSaLFu9Ag209.jpg

    4was应用服务器搭建

    4.1 创建集群环境profile

    新建一个WASAIX

    以建立TDCS的控制台为例

    /usr/WebSphere/AppServer/bin下,有wasprofile.sh 脚本。

    如果是window,则为wasprofile.bat

    4.1.1编辑好端口文件

    ports.dmgr 内容如下:

    WC_defaulthost=39083

    WC_adminhost=39063

    WC_defaulthost_secure=39446

    WC_adminhost_secure=39046

    BOOTSTRAP_ADDRESS=39812

    SOAP_CONNECTOR_ADDRESS=38882

    SAS_SSL_SERVERAUTH_LISTENER_ADDRESS=39407

    CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS=39417

    CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS=39427

    ORB_LISTENER_ADDRESS=39122

    CELL_DISCOVERY_ADDRESS=37280

    DCS_UNICAST_ADDRESS=39355

    其中,adminhost\SOAP端口后续的dmgrmanaged中会使用到。

    4.1.2创建dmgr

    语法:

    wasprofile.sh -create 
                  -profileName profile_name
                  -profilePath fully_qualified_profile_path
                  -templatePath template_path
                  -nodeName node_name
                  -cellName cell_name
                  -hostName host_name
                  -server  iSeries_server_name
                 [-startingPort starting_port | -portsFile filepath]
                  -winserviceCheck true | false
                  -winserviceAccountType specifieduser | localsystem
                  -winserviceUserName yourusername
                  -winservicePassword yourpassword
                  -winserviceStartupType manual | automatic | disabled
                 [-debug] 


    如:

       ./wasprofile.sh \

    -create \

    -profileNameDmgr_TDCS \

    -profilePath/usr/WebSphere/AppServer/profiles/Dmgr_TDCS \

    -templatePath/usr/WebSphere/AppServer/profileTemplates/dmgr \

    -nodeName Dmgr_TDCS \

    -cellName Cell_TDCS \

    -hostName S1_C_CS_GC \

    -portsFile/usr/WebSphere/AppServer/bin/TDCS.ports


    其中nodeName, cellName 要不一致


    创建成功后,会提示

    ./wasprofile.sh \

    -create \

    -profileName Dmgr_TDCS \

    -profilePath/usr/WebSphere/AppServer/profiles/Dmgr_TDCS \

    -templatePath/usr/WebSphere/AppServer/profileTemplates/dmgr \

    -nodeName Dmgr_TDCS \

    -cellName Cell_TDCS \

    -hostName S1_C_CS_GC \

    -portsFile/usr/WebSphere/AppServer/bin/TDCS.ports

    INSTCONFSUCCESS:Success: The profile now exists.


    4.1.2创建manged

    语法
    wasprofile.sh -create 
                  -profileName profile_name
                  -profilePath fully_qualified_profile_path
                  -templatePath template_path
                  -nodeName node_name
                  -cellName cell_name
                  -hostName host_name
                  -server  iSeries_server_name
                 [-startingPort starting_port | -portsFile filepath]
                  -winserviceCheck true | false
                  -winserviceAccountType specifieduser | localsystem
                  -winserviceUserName yourusername
                  -winservicePassword yourpassword
                  -winserviceStartupType manual | automatic | disabled

               [-debug]

    如:

    创建Cluster_2_TDCS

    ./wasprofile.sh\

    -create \

    -profileName Cluster_2_TDCS \

    -profilePath  /usr/WebSphere/AppServer/profiles/Cluster_2_TDCS\

    -templatePath  /usr/WebSphere/AppServer/profileTemplates/managed\

    -nodeNameNode2_TDCS \

    -cellNameCell_TDCS2 \

    -hostName S1_C_CS_GC


    执行完毕之后,提示successful

    ./wasprofile.sh \

    -create \

    -profileName Cluster_2_TDCS \

    -profilePath/usr/WebSphere/AppServer/profiles/Cluster_2_TDCS \

    -templatePath/usr/WebSphere/AppServer/profileTemplates/managed \

    -nodeName Node2_TDCS \

    -cellName Cell_TDCS \

    -hostName S1_C_CS_GC

    INSTCONFSUCCESS: Success: The profile nowexists.


    注意,nodename,cellname要不一致。


    完成之后,在/usr/WebSphere/AppServer/profiles

    可以看到Dmgr_TDCSCluster_2_TDCS文件夹。


    4.1.2启动Dmgr

    /usr/WebSphere/AppServer/profiles/bin目录下,

    启动脚本 ./StartManger.sh 脚本,提示成功。

    4.1.2managed加入Dmgr管理

    /usr/WebSphere/AppServer/profiles/ Cluster_1_TDCS/bin

    目录下,提示成功

    执行addNode.sh  dmgr主机 soap端口,

    ./addNode.sh  10.244.147.19938882

    ADMU0116I: Tool information is being logged in file

             /usr/WebSphere/AppServer/profiles/Cluster_1_TDCJ/logs/addNode.log

    ADMU0128I: Starting tool with the Cluster_1_TDCJ profile

    ADMU0001I: Begin federation of node Node1_TDCJ with Deployment Managerat

             10.244.147.199:38882.

    ADMU0001I: Begin federation of node Node1_TDCJ with DeploymentManager at

             10.244.147.199:38882.

    ADMU0009I: Successfully connected to Deployment Manager Server:

             10.244.147.199:38882

    ADMU0507I: No servers found in configuration under:

             /usr/WebSphere/AppServer/profiles/Cluster_1_TDCJ/config/cells/Cell_TDCJ1/nodes/Node1_TDCJ/servers

    ADMU2010I: Stopping all server processes for node Node1_TDCJ

    ADMU0024I: Deleting the old backup directory.

    ADMU0015I: Backing up the original cell repository.

    ADMU0012I: Creating Node Agent configuration for node: Node1_TDCJ

    ADMU0014I: Adding node Node1_TDCJ configuration to cell: Cell_TDCJ

    ADMU0016I: Synchronizing configuration between node and cell.

    ADMU0018I: Launching Node Agent process for node: Node1_TDCJ

    ADMU0020I: Reading configuration for Node Agent process: nodeagent

    ADMU0022I: Node Agent launched. Waiting for initialization status.

    ADMU0030I: Node Agent initialization completed successfully. Processid is:

              2850914

    ADMU9990I:

    ADMU0300I: Congratulations! Your node Node1_TDCJ has beensuccessfully

              incorporated intothe Cell_TDCJ cell.

    ADMU9990I:

    ADMU0306I: Be aware:

    ADMU0302I: Any cell-level documents from the standalone Cell_TDCJ1

              configuration havenot been migrated to the new cell.

    ADMU0307I: You might want to:

    ADMU0303I: Update the configuration on the Cell_TDCJ DeploymentManager with

              values from the oldcell-level documents.

    ADMU9990I:

    ADMU0306I: Be aware:

    ADMU0304I: Because -includeapps was not specified, applicationsinstalled on

              the standalone nodewere not installed on the new cell.

    ADMU0307I: You might want to:

    ADMU0305I: Install applications onto the Cell_TDCJ cell usingwsadmin $AdminApp

              or theAdministrative Console.

    ADMU9990I:

    ADMU0003I: Node Node1_TDCJ has been successfully federated.

    至此,创建部分完成。


    4.1创建单机环境profile

    4.2.1创建profile的命令:

                 wasprofile.sh  -create

                           -profileNameprofile_name

                           -profilePathfully_qualified_profile_path

                           -templatePathtemplate_path

                           -nodeName node_name

                           -cellName cell_name

                           -hostName host_name

                           -server  iSeries_server_name

                          [-startingPortstarting_port | -portsFile filepath]

                           -winserviceCheck true |false

                           -winserviceAccountTypespecifieduser | localsystem

                           -winserviceUserNameyourusername

                           -winservicePasswordyourpassword

                           -winserviceStartupTypemanual | automatic | disabled

                          [-debug]

    单机环境的-templatePath参数,为default

    如:

                 ./wasprofile.sh\

                        -create-profileName test4sop \

                        -profilePath/websphere/AppServer/profiles/test4sop \

                        -templatePath/websphere/AppServer/profileTemplates/default \

                        -nodeNametest4sopnode \

                        -cellNametest4sopcell \

                        -hostNameS2_E_YZ_JKCS

    4.2.2启动server

    cd /websphere/AppServer/profiles/test4sop

    cd bin

    ./startServer.sh server1



    4.3删除概要文件

    当一个概要文件损毁,或者发生迁移时,需要删除原有的概要文件。

    要删除一个概要,必须按下列方法操作:

    4.3.1 移除一个已经与某个单元联合的自定义概要或应用程序服务器概要

    1.停止节点上的应用程序服务器。

    2.使用管理控制台或 removeNode 命令,将节点从单元中移除。移除一个节点并不会删除它,只是使它恢复到联合前的配置,该配置以前是作为联合过程的一部分予以保存的。

    3.使用 wasprofile -delete 删除概要。

    4.使用 wasprofile -validateAndUpdateRegistry 命令清除概要注册中心。

    5.删除 <profile_home> 目录。

    4.3.2 移除一个未与某个单元联合的应用程序服务器概要

    1.停止应用程序服务器。

    2.使用 wasprofile -delete 删除概要。

    3.使用 wasprofile  -validateAndUpdateRegistry 命令清除概要注册中心。

    4.删除 <profile_home> 目录。

    4.3.3 移除某个部署管理器概要

    使用管理控制台或 removeNode 命令,移除与单元联合的所有节点。移除一个节点并不会删除它,只是使它恢复到联合前的配置,该配置以前是作为联合过程的一部分予以保存的。

    1.停止部署管理器。

    2.使用 wasprofile -delete 删除概要。

    3.使用 wasprofile -validateAndUpdateRegistry 命令清除概要注册中心。

    4.删除 <profile_home> 目录。

    用 wasprofile删除一个概要

    要删除一个概要,请使用 wasprofile -delete 命令。其格式是:

    wasprofile -delete -profileName <profile>

    当该命令完成后,概要将从概要注册中心中移除,除了日志文件之外的运行时组件也将从 <profile_home> 目录中移除。

    如果在删除概要时出现了错误,请检查下列日志: <was_home>/logs/manageprofile/<profile_name>_delete.log

    注意:如果在删除过程中出现问题,可以手动删除概要。



    5、 was资源配置

    以营帐中使用到的资源为例。

    打开控制台页面,

    http://localhost:39063/admin

    完成数据源配置,应用发布等工作。


    5.1 新建server

    检查节点,节点已经存在

    展开全文
  • SpringBoot整合ng-alain...org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized. at org.springframework.security.web.firewal...

    SpringBoot整合ng-alain时报错如下:

    org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.

    org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.
    	at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:296) ~[spring-security-web-5.1.1.RELEASE.jar:5.1.1.RELEASE]
    	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:194) ~[spring-security-web-5.1.1.RELEASE.jar:5.1.1.RELEASE]
    	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) ~[spring-security-web-5.1.1.RELEASE.jar:5.1.1.RELEASE]
    	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
    	at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
    
    
    

    查看源码springStrictHttpFirewall.java中报错源码如下:
    在这里插入图片描述

    判断逻辑在isNormalized(request)函数中,如果请求路径中包含双斜杠//,则会抛出这样的错误。
    在这里插入图片描述

    查看我们的请求,请求中确实包含如下路径:
    在这里插入图片描述

    参照 https://stackoverflow.com/questions/48453980/spring-5-0-3-requestrejectedexception-the-request-was-rejected-because-the-url/49116274 解决方案,通过自定义Firewall的方式允许URL中出现斜杠slash

    @Bean
    public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
        StrictHttpFirewall firewall = new StrictHttpFirewall();
        firewall.setAllowUrlEncodedSlash(true);    
        return firewall;
    }
    

    添加之后,正常访问
    在这里插入图片描述

    展开全文
  • 又刚好去更新提交代码,又或你创建了一个新的仓库送给自己,又刚好想把这个仓库送给(push)github,你就刚好会遇到这个问题:remote: Support for password authentication was removed on August 13, 2021....
  • WAS8.5.5集群部署全程图解

    万次阅读 多人点赞 2017-12-30 10:45:49
    WAS集群有一个优点,就是使用同步的内存作为会话保持,无需使用特殊的回话保持方案,就可以实现多个节点负载均衡的效果。同一个用户登录后,他的session会在所有节点的内存中都拥有相同的拷贝,所以无需担心轮训造成...
  • WAS常用操作

    千次阅读 2018-12-04 07:45:39
    .cd %WAS_HOME%/profiles/AppSrv01/bin ./startServer.sh server1 2、停止server ./stopServer.sh server1 -username admin -password xxxx 3、manageprofile.sh 的用法: 在做所有was前期操作前,请编辑/etc/...
  • WAS服务器重启顺序

    千次阅读 2019-09-19 16:14:16
    WAS重启顺序: 停止WAS环境 1,停止Webserver服务器: 以admin用户进入控制台,进入Web服务器目录停止服务 2,停止集群环境: 以admin用户进入控制台,进入WebSphere集群目录停止集群 3,停止节点Node: 以was用户...
  • WAS中间件服务器简介

    千次阅读 2020-07-08 10:28:30
    1.WebSphere 是 IBM 的软件平台。 WebSphere 为 SOA (面向服务的架构)环境提供软件,以实现动态的、互联的业务流程,为所有业务...2.was是websphere的简称。 使用 WebSphere® Application Server 加速交付新应用程
  • connection was reset问题

    千次阅读 2021-04-16 11:12:43
    connection was reset问题 SecureCRT连接远程服务器,进行命令输入时,时不时卡顿,然后出现connection was reset断开了连接,是本机IP地址和远程服务器的地址冲突了,修改ip,解决。 1、右下角电脑图片->更改...
  • WAS性能优化

    千次阅读 2018-12-04 08:37:59
    登录WAS控制台:   修改初始堆大小,与最大堆大小。这里根据机器性能调整,通常情况下,机器资源是足够的,因此请调整为: 1536至3072  或者直接修改server.xml文件 /was/IBM/WebSphere/AppServer/profiles/...
  • was集群搭建部署

    千次阅读 2018-07-05 20:06:54
    比如我的路径是:/was/AppServer/profiles/resservice/installedApps/tfint1Cell01/ ResService_war.ear /   启动安装的引用为其他服务器分发程序         (9)问题解决 1、...
  • Horizontal viewport was given unbounded height. Vertical viewport was given unbounded width. 在写纵向或横向的布局的时候,一不小心就会遇到这个异常,宽度或高度溢出,导致widget不显示。 比如一个简单的...
  • 工具原料:was中间件,websphere中间件was控制台,websphere控制台was安装包方法步骤:A:登录was控制台 在浏览器中,输入was控制台、websphere控制台地址,访问was控制台、websphere控制台登陆页面。在was...
  • WAS 数据源配置文件位置

    千次阅读 2020-07-19 13:10:42
    上周查了个问题:WAS启动卡在连接池初始化上,明显是数据源配置问题。 因为WAS起不来,所以进控制台排查肯定是不行了,好在服务器本地数据源配置是明文。 该配置在$WAS_HOME/***/PROFILE_NAME/config/***/resource...
  • nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found 问题 1 . Current request is not a...
  • Was8.5静默安装完整步骤

    千次阅读 2018-10-27 17:40:52
    1、安装包准备 Installation Manager安装包:agent.installer.linux.gtk.x86_...WAS_ND安装包: WAS_ND_V8.5_1_OF_3.zip WAS_ND_V8.5.5_2_OF_3.zip WAS_ND_V8.5.5_3_OF_3.zip 2、目录结构: Installation Man...
  • WAS CPU高处理方法

    千次阅读 2018-12-05 10:31:05
    通过topas或者top发现导致机器cpu高的进程为was的进程ID号。可以通过(ps -ef|grep java 去查询一下was的进程号) 1) 利用工具aixperf.sh (linux利用工具linperf.sh,was6.0利用aixperf60.sh)进行收集数据,...
  • WAS 升级JDK1.8

    千次阅读 2018-12-13 15:48:49
    因发布的应用需要在jdk1.8版本下运行,而WAS8.5版本自带的IBM JDK版本为1.6,需将jdk升至1.8. (请看完完整博客后再操作,本人遇到了版本的坑) 第一种方法(适合升级IBM JDK1.7版本) 先下载was下IBM JDK1.8安装包...
  • 解决Github拉代码remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 错误。
  • 最近在工作中遇到了一个Fegin传参...java.lang.IllegalArgumentException: Body parameter 0 was null at feign.Util.checkArgument(Util.java:102) at feign.ReflectiveFeign$BuildEncodedTemplateFromArgs.reso...
  • GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("html.parser"). This usually isn't a problem, but if you run this code on ...
  • 出现keytool 错误:Keystore was tampered with, or password was incorrect的原因一般不是因为密码错误,而是因为在储存*.jks文件时出错,一般都是应该 储存jks文件的文件夹中有同名的文件。 ...
  • WAS内存溢出处理方法

    千次阅读 2018-12-05 10:18:03
    有时内存溢出会导致WAS挂了,有时不会挂,会自动恢复。 如果WAS挂了,重启即可,不用额外操作收集信息。 后续分析日志: 下载native_stderr.log文件,在/was7/profiles/AppSrv01/logs/server1下,与SystemOut.log...
  • xxxxxx:Spring-boot-activiti:jar:1.1: Failure to find io.springfox:springfox-swagger-ui:jar:2.3.2 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be ...
  • 对于一些刚接触OpenStack的新人,辛苦两天终于把OpenStack部署好了,建立实例时却失败了。这是一件很郁闷的事情。...同样,生成VM时常见的报错 ” No valid host was found. There are not enough hos
  • was控制台及节点启动

    千次阅读 2019-03-29 09:38:40
    Was中间件控制台及节点启动位置基本固定。 1、控制台启动: 启动文件路径:cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/ 启动文件:./startManager.sh 2、节点启动: 启动文件路径:cd /opt/IBM/...
  • linux下安装was9.0

    千次阅读 2019-08-13 15:17:34
    WAS需要IBM的安装工具IM 先安装Installation Manager 安装包为:agent.installer.linux.gtk.x86_64_1.8.9001.20180709_1302.zip https://www-945.ibm.com/support/fixcentral/swg/downloadFixes?parent=ibm~...
  • org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized. at org.springframework.security.web.firewall.StrictHttpFirewall....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 866,496
精华内容 346,598
关键字:

was