分类目录归档:工作

jar not loaded. See Servlet Spec 2.3, section 9.7.

信息: validateJarFile(D:\xj\workspace\webworktest\webapp\WEB-INF\lib\servlet-api-2.4.jar) – jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

分析:

jsp-api.jar和servlet-api.jar这两个包tomcat的common\lib已经有了,必须将\WEB-INF\lib\目录下的去掉,否则会冲突的,会引起tomcat启动正常,而页面却总是无内容显示的错误

解决方案:

将\WEB-INF\lib\目录下的jsp-api.jar和servlet-api.jar删除

保证WEB-INF\lib跟tomcat5的common/lib下的JAR包没有重复的即可! 

警告: [SetPropertiesRule]{Server/Service/Engine/Host

在网上查了一下,很多人也碰到这个问题

转一下别人的解释:

有的说将Tomcat的版本换成6.0.14就可以了;还有的说在建立Dynamic Web Project时把"Dynamic Web Module"选项后面的版本号由2.5改成2.4也行。不过这些回答好像都不能真正地解决问题。

出现SetPropertiesRule警告的原因是因为Tomcat在server.xml的Context节点中不支持source属性:<Context docBase="…" path="/…" source="org.eclipse.jst.j2ee.server:…"/>

解决方法是在Servers视图里双击创建的server,然后在其server的配置界面中选中"Publish module contexts to separate XML files"选项。

具体“Publish module contexts to separate XML files”是什么意思,

请看Tomcat Publishing Options介绍:

Two new options which affect publishing are now available in the Server Options section of the Tomcat server editor. The Tomcat server must be 5.0.x or later for these options to be enabled. The Serve modules without publishing option does what it says. Web content will be served directly from the "WebContent" folder of the Dynamic Web Project. A customized context is used to make the project’s dependencies available in the Web application’s classloader. The Publish module contexts to separate XML files option will publish contexts using the preferred method of separate XML files under the "conf/Catalina/localhost" directory, rather than keeping them in the "server.xml" file. A couple of improvements for this option are noted in Bugs 180931 and 180936.

关于解决方法,再详细说明一下:

Servers视图的打开方法:Window–Show View-other..–Servers

双击Server:就是双击服务器名,我的服务器名为:Tomcat v6.0 Server at localhost 即双击它,进入

server的配置界面: 选中"Publish module contexts to separate XML files"选项

tar包、压缩与解压缩

 

在Unix下常遇到一些解包、压包的问题。一般情况下将若干文件或文件夹打成tar包,是为了便于文件的传输和管理。例如,通过FTP从Unix平台下载目录结构较多的文件夹到Windows平台或另外一Unix平台,虽然文件夹不是太大,但由于每个文件很小,且非常多,每个文件都要进行文件头、尾检查校验。下载速度会非常慢。如果打成tar包,传输就会快很多。存档的文件夹打成tar包也容易管理。
值得注意的是:tar文件只是将文件或文件夹打包,并没有进行压缩。如果文本文件较多,对其压缩会节省很大的磁盘空间,传输将更快。压缩和解压缩方法可以参考下文给出的示例。
下面我以Sun Solaris 5.8(其他unix如linux、aix大体相同)为例,就常见的一些问题向各位同仁作一下介绍,供大家在工作中参考。因水平有限,仅做抛砖引玉,欢迎大家积极补充。

1、如何解开.tgz或.tar.gz文件?
2、如何解开.z或.Z文件?
3、如何解开.tar.Z文件?
4、如何安装、卸载、列出rpm包信息?(linux常用)
5、如何使用tar命令测试、展开、生成tgz包?
6、如何解开和生成tar文件?
7、如何象在PC上的ARJ那样的分解打包软件?
8、在Unix下如何压缩文件?
9、如何解开和生成其他包如.jar文件?
10、抛砖引玉,待同仁补充

============================================================
1、如何才能解开.tgz或.tar.gz文件?
1)方法一:
gzip -d filename.tar.gz 或 gzip -d filename.tgz
tar -xvf filename.tar
2)方法二:
解压并列表:
gzip -dc filename.tgz | tar xvf – #解.tgz文件
gzip -dc filename.tar.gz | tar xvf – #.tar.gz 同 .tgz文件
只列表不生成文件:
gzip -dc filename.tgz | tar tvf – #解.tgz文件
gzip -dc filename.tar.gz | tar tvf – #.tar.gz 同 .tgz文件
gzip的其他使用方法参见gzip -h

============================================================
2、如何才能解开.z或.Z文件?
1)解.z 文件: gzcat filename.z
2)解.Z 文件:uncompress -c filename.Z

============================================================
3、如何解.tar.Z文件?
1)解压并列表:
zcat filename.tar.Z | tar xvf – #解.tar.Z文件
uncompress -c tast.tar.Z | xvf – #uncompress -c 同 zcat
2)只列表不生成文件:
zcat filename.tar.Z | tar tvf – #解.tar.Z文件
uncompress -c filename.tar.Z | tvf – #uncompress -c 同 zcat

============================================================
4、如何安装、卸载、列出rpm包信息?(linux常用)
1)安装rpm包时显示进度,例如:用-vh参数,如rpm -ivh ipchains-1.3.6-1.i386.rpm
2)直接通过ftp来安装rpm包,例如:rpm -i
3)校验所有的rpm包,查找丢失的文件,例如:rpm –Va
4)查找一个文件属于哪个rpm包,例如:rpm -qf /usr/bin/who
5)列出一个rpm包的描述信息,例如:rpm -qpi mon-0.37j-1.i386.rpm
6)列出一个rpm包的文件信息,例如:rpm -qpl mon-0.37j-1.i386.rpm
7)列出并过滤已经安装的包,例如:rpm –q |grep IBM
8)删除已安装的包,例如:rpm –e 包名
9)其他rpm操作参见 # rpm –help

============================================================
5、如何使用tar命令测试、展开、生成tgz包?
tar zvfx filename.tgz #在当前目录下展开这个包
tar zvft filename.tgz #只测试不展开
tar zvfx filename.tgz -C /new-dir #展开后放到/new-dir目录下
tar zvfc filename.tgz /filename #把/filename目录下所有的文件及子目录打包成filename.tgz

============================================================
6、如何解开和生成tar文件?
tar xvf filename.tar #当先目录解包
tar tvf filename.tar #只显示不生成文件
tar cvf filename.tar <file or dir list> #生成包
tar的参数很多,要仔细学习参见#tar -h

============================================================
7、如何象在PC上的ARJ那样的分解打包软件?
# split -b 100k big.file
将big.file分解成若干500K的小文件 (名为xa, xb, xc, …)
# split -l 500 big.file
将big.file分解成每个500 lines的小文件
其它使用方法参见split –h

============================================================
8、在Unix下如何压缩文件?
在unix下压缩方法有多种,可以参见gzip、gunzip、zcat、compress等工具文档,也可以参见上面所述的一些方法。下面仅以compress命令示例:
例如:需要将/filename的文件打包并压缩,需要做以下步骤:
1)打包
tar cvf filename.tar ./dir
2)压缩
compress filename.tar #生成filename.tar.Z文件
如果还原回原来的目录结构
1)解压缩
uncompress filename.tar.Z
3)解tar包
tar xvf filename.tar
如果unix命令参数不熟悉,一般也可以通过ftp将压缩或打包文件传到PC上,利用Windows下的Winzip或rar等压缩工具解开。

==========================================================
9、如何解开和生成其他包如.jar文件?
在unix上生成和解开jar包和对tar包的操作差不多。
例如:
jar cvf filename.jar /dirname #将/dirname 打成jar包
jar xvf filename.jar #解开jar包
jar tvf filename.jar #只列表不解开jar包

eclipse中svn更改ip

我们项目组的应用程序是通过SVN进行版本控制的,通过安装Eclipse的SVN插件后,每次程序进行下载、同步、提交、更新,便可在Eclipse进行Synchronize、CheckOut、Commit、Update,非常方便。但是今天出了点小状况:版本控制器更换了地方,IP也变了。这样的话,我们自己机器这边没法进行同步了。如果重新以新的版本控制器的地址进行CheckOut,则原先自己本机上的程序就没法进行管理了,非常不爽。自然想到修改本机程序的版本控制器地址,这里就要借助一个客户端工具:小乌龟TortoiseSVN,幸好偶机器上有装。
首先在你自己程序所在工程的根目录下,点击鼠标右键,如下图:

选择TortoiseSVN–>Relocate,这时会跳出如下对话框:

修改文本框上面的IP地址为你目前版本控制器的地址即可。这时,你再回到Eclipse的界面,查看你程序的SVN版本控制器的URL,你将非常惊讶地发现:

上面的地址已经更新为你刚才输入的新的版本控制器的地址了,很神奇吧!

有一个问题:很多人会想(其实我也想到了),能否不借助小乌龟TortoiseSVN,而直接在Eclipse上进行修改呢?可惜的是,找了老半天,没找到其"神秘入口"所在……欢迎指教!

[题外话:]
晚上吃完饭走进平安大厦来加班的时候,经常和我们碰面的保安同志也耐不住了,向我们甩一句:
“天天加班啊?……”很愤怒的样子…… 足以见证安硕的加班已令“千”夫所指!

Oracle的一些SQL语句

一: SQL简介
SQL是Structured Query Language(结构化查询语言)。SQL是由IBM在二十世纪七十年代初开发的。 SQL是数据库语言,Oracle使用该语言存储和检索消息。
通过SQL可以与Oracle服务器实现通信: 输入SQL命令–> 将SQL命令发送到Oracle服务器–>Oracle服务器执行该命令–>将查询结果发送给用户
SQL是所有关系型数据库通用语言,因此他是可以移植的,可以用来操作其他数据库。
二: SQL命令
SQL 支持4大类型命令:
数据定义语言(DDL): Create(创建), Alter(更改), Drop(删除).
数据操纵语言(DML): Select(选择), Insert(插入), Update(更新), Delete(删除).
事务控制语言(TCL) : Commit(提交), Rollback(回滚), Savepint(保存点).
数据控制语言(DCL) : Grant(授予), Revoke(回收).

A: 数据定义语言: 用于改变数据库结构,包括创建,修改,删除数据库对象
         创建表:
         Create Table 表名 ( 列名 列类型, 列名 列类型, …… )
        例: Create Table vendor_master( vencode Varchar2(5), venname Varchar2(20) )
        修改表:
        Alter Table 表名 Modify | Add ( 列名 列定义 )
                  Modify:修改列。    Add:增加列。
        例: Alter Table vendor_master Modify ( vencode Varchar2( 10 ) )
                  Alter Table vendor_master Add ( venAdd Varchar2(20) )
        Alter Table 表名 Drop Column 列名
                  Drop 删除列。
        例: Alter Table vendor_master Drop Column venAdd
        删除表:
        Drop Table 表名
        例: Drop Table vendor_master
B:数据操纵语言: 用于检索,插入和修改数据库信息。
      Select 选择查询:
      查询符合条件的所有表字段:
       Select * From 表名 Where 列名 = 条件
       例:Select * From vendor_master Where vencode = ‘V004’
       查询符合条件的表的可选择字段:
       Select 列名,列名,…… From 表名 Where 列名 = 条件
       例:Select venname, venadd Where vencode = ‘V004’
       查询无重复的行:
       在Select 后加Distinct就可以了
       列:Select Distinct * From vendor_mastor
      查询并排序显示查询结果:
       Select * From 表名 Order By 排序列名,排序列名,……
       例:Select * From vendor_master Order By vencode    — 按一列来排序
               Select * From vendor_master Order By vencode, venadd   — 按多列来排序  
      Select 语句的总语法:
       Select * | {[Distinct] 列名,列名,…… } From Table
       [Where 条件]
       [Order By 列名,列名,……]
       其中用[ ]这个符号括起来的表示是可以选择写不写的。

      Insert 插入:
      插入一个表的所有列:
       Insert Into 表名 Values ( 列值,列值,…… )
       例:Insert Into vendor_master Values ( ‘V001’, ‘Pro’, ‘长沙’ )
      选择性插入表中的列:
       Insert Into 表名 ( 列名,列名,…… ) Values( 列值,列值,…… )
       例:Insert Into vendor_master ( vencode, venname ) Values( ‘V002’, ‘Wind’ )
       注:未选择插入值的列将以NULL空值插入。
      跳过列插值:
       跳过一个或多个列的方式是为该列输入NULL空值
       Select * From vendor_master Values( ‘V003’, NULL, ‘长沙’ )
      插入来自其他表的所有记录:
       Insert Into 表名 Select * From 表名    
       例:Insert Into order_master Select * From vendor_master
      选择列插入来自其他表的记录:
       Insert Into 表名 Select| 列名,列名,…… From 表名
       例:Insert Into order_master Select vencode, venname From vendor_master
      按条件插入来自其他表的所有记录:
       Insert Into 表名 Select * From 表名 Where 表名.列名
       例:Insert Into order_master Select * From vendor_master Where   vendor_master.vencode = ‘V002’
    Update 更新:
    按条件更新一列或多列:
     Update 表名 Set 列名 = 更新值,列名 = 更新值,……
     Where 列名 = 条件
     Update vendor_master Set venname = ‘kof’ Where vencode = ‘V001’
    更新所有行:
     Update 表名 Set 列名 = 更新值,列名 = 更新值,……
                  Update vendor_master Set venname = ‘kof’
      Delete 删除:
     Delete From 表名 Where 列名=条件
     例:Delete From vendor_master    — 删除表所有记录
     例:Delete From vendor_master Where vencode = ‘V001’ — 选择删除

C:事务控制语言:
        当用户执行创建,删除,修改数据库对象或插入,删除,修改数据库表时,    用户所做的数据修改会被保存在数据缓冲区中,此时用户所做的数据库修改并没有真正的修改了数据库,只有在用执行Commit(提交)命令后才真正的修改了数据库,如果想不修改数据库,则可以执行Rollback(回滚)命令则刚刚执行的修改不会修改数据库。
        如:当你用Insert 命令插入一条记录时,此时这条记录是保存在数据缓冲区中的,并没有真正保存到数据库中,数据库中不会有这条记录(不信你可以以另一个用户登陆然后查询插入的表,会发现无次记录),如果你执行了Commit(提交)命令后, 才会将缓冲区的数据保存到数据库里,既真正的修改了数据库(以另一个用户登陆可以查询到插入的记录),如果执行Rollback(回滚)命令则会把存在缓冲区中的数据给删除掉,既用户的修改作废(如果执行Commit命令则不能回滚了)。可以利用Savepoint(保存点)进行选择性的回滚。
例: Insert Into vendor_master Values( ‘V007’, ‘Kof’, ‘长沙’ )
          Savepoint insert_mark     — 保存点
          Update vendor_master Set venname = ‘aaa’ Where vencode = ‘V007’
          Savepoint update_mark     — 保存点
          Delete From vendor_master Where vencode = ‘V007’
执行以上代码,以上所修改的数据会先保存在数据缓冲区中,当执行Commit则将所做的数据修改保存到数据库中。当执行Rollback时则删除保存在数据缓冲区中的记录(既插入,更新,删除操作作废)。 如果只想删除作废,则可执行:Rollback To Savepoint update_mark           如果想删除,更新作废,则可执行:Rollback To Savepoint insert_mark       如果想插入,更新,删除作废,则可:Rollback
注: 此事务处理机制只有在Oracle中才必须需要用户手动控制,在SQL2000中默认情况它会隐性控制(既用户不需要自己执行Commit命令来提交,他自动执行),当然在SQL2000中也支持自己控制。

D:数据控制语言:用于为用户提供权限控制。
       在前面将过,所以不重复了。

三:SQL函数(常用函数)
      Oracle 将函数分为2大类:单行函数和分组函数

        单行函数又分为5大类
                   A:日期函数        B:字符函数        C:数字函数
                   D:转换函数        E:其他函数
        A:日期函数
                Round函数:返回日期,此日期四舍五入为格式模型指定的单位。
                格式为: Round( 日期, [格式模型] )
                格式为“Year”,如果日期大于7月1日将入为下一个年份。反之则舍为1月1日
                例: Select Round( DATE’2005-05-10′, ‘Year’ ), Round( DATE’2005-07-10′, ‘Year’ ) From dual
                结果为: 2005-01-01   和 2006-01-01.
                格式为“Month”,如果日期大于15则入为下一月份,反之则舍为此月1日
                例: Select Round( DATE’2005-05-10′, Month), Round( DATE’2005-05-20′, Month) From dual
                结果为: 2005-05-01 和 2005-06-01

        B:字符函数
                Instr 函数: 查找某字符位置
                InStr( 字符串, 字符 )
                例: Select InStr( ‘worldwide’, ‘d’ ) From dual
                结果: 5
                SubStr函数: 按位置去多个字符
                SubStr( 字符串, 起始位置, 取几个 )
                例: Select SubStr( ‘abcdefg’, 3, 2 )
                结果: cd
               Trim 函数:从字符串开头或结尾(或开头和结尾)剪裁特定的字符,默认裁减空格
              裁减左边开头字符:
                Trim ( Leading 裁减的字符 From 字符串 )
                例:Select Trim( Leading 9 From 9999876549999 ) From dual
                结果: 876549999
                裁减右边开头字符:
                Trim ( Trailing 裁减的字符 From 字符串 )  
                例:Select Trim( Trailing 9 From 9999876549999 ) From dual
                结果: 999987654
                裁减左边和右边字符:
                Trim ( 裁减的字符 From 字符串 )  
                例:Select Trim( 9 From 9999876549999 ) From dual
                结果: 87654
     Decode 函数:将值进行替换
Select Decode ( 比较列名, 比较值, 替换值, 比较值2, 替换值2,…… ) From 表名
例:Select venname, Decode( vencode, ‘001’, ‘aaa’, ‘002’, ‘bbb’, ‘003’, ‘ccc’ ) From vendor_master
结果:Pro      aaa
           Wind    bbb
            Kof      ccc
            Fly       004
注: 001, 002, 003被aaa,bbb,ccc替换

C:数字函数:
        ABS 函数: 去绝对值
        ABS( n )
        例: Select ABS( -15 ) From dual
        结果: 15
        FLOOR 函数: 向下取整
        FLOOR( n )
        例: Select FLOOR( 100.2 ) From dual
        结果:100
        Power 函数: m的n次幂
        Power( m, n )
        例: Select Power( 4,2 ) From dual
        结果: 16
      Mod 函数: 取m 除 n 的余数
        Mod( m, n )
        例: Select Mod( 10, 3 ) From dual
        结果: 1
        Round 函数: 四舍五入
        Round( m, n )
        例: Select Round( 100.256 , 2 ) From dual
        结果: 100.26
        Trunc 函数: 截断
        Trunc( m, n )
        例: Select Trunc( 100.256, 2 ) From dual
        结果: 100.25
        Sqrt 函数: 平方根
        Sqrt( n )
        例: Select Sqrt( 4 ) From dual
        结果: 2

D:转换函数
  To_Char 函数: 将数字或日期转换为字符串.
  To_Char( 数字或日期,转换格式 )
        例:Select To_Char ( sysdate, ‘ YYYY "年" fmMM "月" fmDD "日" HH24:MI:SS’ ) From dual
         结果: 2005年8月25日 16:02:10
         例:Select To_Char( ‘150’, ‘C999’ ) From dual    — 按货币格式转换
        结果: CHY150
        To_Date 函数: 将字符或字符串转换为日期
  例:Select To_Date ( ‘2005-01-03’, ‘YYYY-MM-DD’ ) From dual
        结果:2005-01-03 (日期类型)
    To_Number 函数: 将包含数字的字符串转换为Numer数字类型
        例:Select Sqrt( To_Number( ‘100’ ) ) From dual
        结果:10
E:其他函数
  注:NULL和0不同,NULL表示为空(未知),0表示为0(以知)
        NVL 函数: 将空值替换为指定的值.
  NVL ( exp1, exp2 )
    如果exp1为空,则返回exp2, 反之返回exp1.
        例:Select NVL( NULL, 0 ), NVL( ‘aa’, 1 ) From dula
        结果: 0 和 aa
        NVL2 函数: 将空值替换为指定的值.
  NVL 2( exp1, exp2, exp3 )
    如果exp1为空,则返回exp2, 反之返回exp3.
        例:Select NVL( NULL, 0, 1 ), NVL( ‘aa’, 0, 1 ) From dula
        结果: 0 和   1      

分组函数(又叫聚合函数):
      Avg 函数:返回指定列的平均值
  例:Select Avg( price ) From itemfile
         结果:返回所有行price值的和的平均值.
        Min 函数:返回指定列的最小值
  例:Select Min( price ) From itemfile
      Max 函数:返回指定列的最大值
  例:Select Max( price ) From itemfile
        Sum 函数:返回指定列的值的总和
  例:Select Sum( price ) From itemfile
        Count 函数:返回指定列的行树,可加条件
  例:Select Count( price ) From itemfile
      Group By 字句:将信息分组,按组进行聚合运算.
  例:Select p_category, Max( itemrate ) From itemfile Group By p_category
        结果:按p_category分组,并显示出每组的最大的itemrate.
  Having 字句:用来指定Group By 字句的检索条件,位于Group By 后面
  例:Select p_category, Max( itemrate ) From itemfile Group By p_category Having p_category Not In ( ‘accessories’ );
        结果:按p_category分组,且p_category不等于accessories,然后显示出每组的最大的itemrate.

Oracle截取字符串和查找字符串

oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏
常用函数:substr和instr
1.SUBSTR(string,start_position,[length])    求子字符串,返回字符串
解释:string 元字符串
       start_position   开始位置(从0开始)
       length 可选项,子字符串的个数
For example:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
substr("ABCDEFG", 0, -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。

2.INSTR(string,subString,position,ocurrence)查找字符串位置
解释:string:源字符串
      subString:要查找的子字符串
      position:查找的开始位置
      ocurrence:源字符串中第几次出现的子字符串
For example:
INSTR(‘CORPORATE FLOOR’,’OR’, 3, 2)中,源字符串为’CORPORATE FLOOR’, 目标字符串为’OR’,起始位置为3,取第2个匹配项的位置;返回结果为 14 ‘

 

_______________________________

示例:

A#B#C#D
我想用sql截取得到C怎么写?
首先说下的市这个字符串也可能是AB#B#C#DE#EF#G
我想取到的是第二个‘#’和第三个‘#’之间的字符窜?

 select SUBSTR(module_tree,
              INSTR(module_tree, ‘#’, 1, 2) + 1,
              INSTR(module_tree, ‘#’, 1, 3) – INSTR(module_tree, ‘#’, 1, 2) – 1) as module_id
  from sys_modules sm
 where sm.module_id = ‘wdcs04’

 

FlexViewer2.3 最小化显示问题

因为在4.0中Resize 是用的<s:Resize  到4.5后又用回到<mx:Resize所以在WidgetTemplateSkin.mxml中

  <s:Resize heightTo="30"
                          target="{hostComponent}"
                          widthTo="100"/>

改为

 <mx:Resize heightTo="30"
                          target="{hostComponent}"
                          widthTo="100"/>

suse11不能用ssh登陆的解决-实战

现象:
VMware启动进入系统后,XP通过SecureCRT进行SSH进行登陆,结果怎么都登不上去。。。
在虚拟机里面用netstat看了一下,Suse上的22端口已经在侦听了,可是就是从XP上登不上去,ping都没问题。

root 身份执行:

linux-jvm6:/home/jackxiang/桌面 # telnet  localhost 22

Trying ::1…

Connected to localhost.

Escape character is ‘^]’.

SSH-2.0-OpenSSH_5.2

Protocol mismatch.

Connection closed by foreign host.

原来是防火墙的原因!

首先,打开/etc/sysconfig/SuSEfirewall2 文件,FW_SERVICES_EXT_TCP="ssh"可以定义开放ssh的服务。
然后,打开root登陆权限,如下:
决办法:
ssh默认不支持密码方式验证.
修改/etc/ssh/sshd_config文件,把
PasswordAuthentication no
修改为:
PasswordAuthentication yes
再重启ssh服务即可:
/etc/init.d/sshd restart

防火墙设置也可以执行yast 程式,于 firewall 项目内设定允许 ssh port 22 登入存取。

后记:
如果想控制仅允许某一IP或某一网段来使用这个SSH服务呢?
修改配置文件中的FW_SERVICES_ACCEPT_EXT参数即可实现.

—————————————————————————-
补充:
使用yast查看sshd服务的状态,在命令行输入yast回车,启动yast界面,选择 “System>SystemServices(Runlevel)”,打开SystemServices(Runlevel):Services 界面,检查sshd状态已经是Enabled。使用功能键Alt E转到ExpertMode,观察到当前sshd运行在Runlevel5, (Fullmultiuserwithnetworkanddisplaymanager),这都没有问题。

注意:service sshd restart 这样也可以启动!