<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    afunms

    My Software,My Dream—Forge a more perfect NMS product.

    2011年9月28日 #

    速方日志審計系統

    posted @ 2014-12-18 17:41 afunms 閱讀(228) | 評論 (0)編輯 收藏

    中國移動WLAN業務PORTAL協議規范

    用java實現中國移動WLAN業務PORTAL協議規范




    有需要代碼的可聯系本人。
    QQ:316909543

    posted @ 2014-11-13 22:30 afunms 閱讀(450) | 評論 (0)編輯 收藏

    IT資源監管系統ES

    廣州速方軟件IT資源監管系統ElementSentry
    V5.8,提供免費下載試用。

    http://www.soofound.com/biz/product/es/intro.htm
    QQ:316909543
    Email:afunms@soofound.com




    posted @ 2013-08-30 13:54 afunms 閱讀(348) | 評論 (0)編輯 收藏

    硬件監控--磁盤陣列

    通過SNMP實現對磁盤陣列的監控

    posted @ 2012-07-24 20:49 afunms 閱讀(387) | 評論 (0)編輯 收藏

    SNMP Message Format – SNMP PDU Format

    Simple Network Management Protocol i.e. SNMP is a simple request/response protocol in which SNMP manager communicates with SNMP agents/managed devices using SNMP PDU’s (Packet Data Unit). These PDUs are encapsulated in SNMP Messages. An snmp message consists of a sequence that contains SNMP version, Community String, and SNMP PDU and an SNMP PDU forms the body of the message. Look here to read about seven types of SNMP PDUs.

    We need to understand that SNMP Message is different from SNMP PDU and hence their formats. Let us now understand SNMP Message Format and SNMP PDUD Format for SNMPv1, SNMPv2 and SNMPv3.

    SNMPv1 Message Format

    SNMPv1 Message Format

    • SNMP Version – It is an Integer that identifies the version of SNMP. For SNMPv1, it is 0.
    • Community String – An Octet String that may contain a string used to add security to SNMP devices.
    • SNMP PDU – The SNMP PDU (Protocol Data Unit) is used for communication between the SNMP entities.

    SNMPv1 PDU Format

    For SNMPv1, there are two pdu formats, one for Trap and other for rest of the pdu types.

    Below PDU format is applicable for Get, GetNext, Set and Response PDUs:

    SNMPv1 PDU Format

    • PDU Type – Specifies the type of PDU
    • Request ID – Associates SNMP requests with responses.
    • Error status – Indicates one of a number of errors and error types. It is set only in Response PDU, for rest it is set as 0.
    • Error index – Associates an error with a particular object instance. It is set only in Response PDU, for rest it is set as 0.
    • Variable bindings – Each variable binding associates a particular object instance with its current value. For Get and GetNext requests, the value is ignored.

    Below PDU format is applicable for Trap PDU:

    SNMPv1 Trap PDU Format

    • PDU Type – Specifies the type of PDU as Trap
    • Enterprise – Identifies the management enterprise under whose registration authority the trap was defined.
    • Agent address – IP address of the agent
    • Generic trap type – Used to identiy the generic trap. There are six types of generic traps.
    • Specific trap type – Used to identify a specific trap.
    • Time Stamp – Value of the sysUpTime mib object

    SNMPv2 Message Format

    SNMPv2 Message Format

    • SNMP Version – It is an Integer that identifies the version of SNMP. For SNMPv2, it is 1.
    • Community String – An Octet String that may contain a string used to add security to SNMP devices.
    • SNMP PDU – The SNMP PDU (Protocol Data Unit) is used for communication between the SNMP entities.

    SNMPv2 PDU Format

    For SNMPv2, there are two pdu formats, one for GetBulk and other for rest of the pdu types.

    Below PDU format is applicable for Get, GetNext, Set, Response, Trap and Inform PDUs:

    SNMPv2 PDU Format

    • PDU Type- Specifies the type of PDU
    • Request ID- Associates SNMP requests with responses.
    • Error Status- Indicates one of a number of errors and error types. It is set only in Response PDU, for rest it is set as 0.
    • Error Index- Associates an error with a particular object instance. It is set only in Response PDU, for rest it is set as 0.
    • Variable Bindings- Each variable binding associates a particular object instance with its current value. For Get and GetNext requests, the value is ignored.

    Below PDU format is applicable for GetBulk PDU:

    SNMPv2 GetBulk PDU Format

    • PDU Type – Specifies the type of PDU as GetBulk
    • Request ID- Associates SNMP requests with responses.
    • Non repeaters- Specifies the number of object instances in the variable bindings field that should be retrieved no more than once from the beginning of the request.
    • Max repetitions- Defines the maximum number of times that other variables beyond those specified by the Non repeaters field should be retrieved.
    • Variable Bindings- Each variable binding associates a particular object instance with its current value.

    SNMPv3 Message Format

    SNMPv3 message format is very different from the above two because of lot of security parameters introduced in this version. Below is how it looks like:

    SNMPv3 Message Format

    • Version – It is an Integer that identifies the version of SNMP. For SNMPv3, it is 3.
    • ID – This field contains the SNMP message identifier which is a unique ID associated with the message. The msgID field is different from the reqID field available in the PDU.
    • Max Size – This field represents the maximum size of message which the requesting SNMP entity can accept.
    • Flags – This field contains the message security level. 0 – message is authenticated, 1 – message uses privacy, 2 – a report PDU is expected for the message
    • Security Model – This field indicates the security model used to generate the message. When USM is used, it has a value of 3
    • Engine ID – This field has the SNMPEngineID of the authoritative SNMP entity involved in the transaction. When a request PDU is generated from an SNMP engine, the remote peer (agent for Get request and manager for Trap request) is the authoritative SNMP entity.
    • Engine Boots – This field has the snmpEngineBoots value of the authoritative SNMP entity involved in the transaction
    • Engine Time – This field has the snmpEngineTime value of the authoritative SNMP entity involved in the transaction
    • User Name – This field contains the principal who originated the request.
    • Security Parameters – This field contains the security parameters that are security model dependent. It contains the authentication parameters and the privacy parameters for USM.
    • Context Engine ID – Within an administrative domain, the contextEngineID uniquely identifies an SNMP entity that may realize an instance of a context with a particular contextName.
    • Context Name – A contextName is used to name a context. Each contextName must be unique within an SNMP entity.
    • PDU – The SNMP PDU (Protocol Data Unit) is used for communication between the SNMP entities.

    SNMPv3 PDU Format

    The PDU types for SNMPv3 are the same as the SNMPv2.

    Thus, above are the message and pdu formats for SNMPv1, SNMPv2 and SNMPv3. Hope you find the information presented here useful. Feel free to leave your footprints for any queries, feedback or suggestions in the comments section below.

    posted @ 2012-05-04 16:12 afunms 閱讀(852) | 評論 (0)編輯 收藏

    snmp4j FAQ


    • Why is SNMP4J free?
      Currently there is a lack of an affordable well object
      oriented designed SNMP implementation for Java. SNMP4J tries to fill this gap.
      It is free to get the best support and feedback from the Internet community. In
      addition it is a small compensation for the help we got from other open source
      projects.
      Nevertheless you are welcome to support the development of SNMP4J
      by purchasing commercial e-mail support.
       
    • Where can I find examples for SNMP4J API usage?
      Simple examples are provided by
      the JavaDoc of the SNMP class which can be viewed here.
      A (nearly) complete example for the SNMP4J API usage
      is the console tool. It can be found in the org.snmp4j.tools.console.SnmpRequest
      class.
       
    • Is SNMP4J thread-safe?
      Yes, SNMP4J is designed for multi-threaded
      environments. Nevertheless, objects put into a PDU must not be modified while
      the corresponding SNMP request is being processed.
       
    • Why do I get sometimes a time-out (response == null) on a request although I see log
      messages like “Received response that cannot be matched to any outstanding
      request...”?

      The response of the agent has been received after the
      request had been timed out. To solve this, increase the time-out value for the
      target.
       
    • Why am I always getting a time-out (response == null) when sending a request?
      Probably you have forgotten to call the listen() method of the
      TransportMapping (once) or the Snmp class before sending the
      request.
       
    • Can I use a single Snmp instance to request data from multiple SNMP agents at the same time?
      Yes, of course! You can either use asynchronous requests and
      collect their responses in a one or more callback listeners or you can use
      synchronous requests that are send from several threads concurrently.

    • Can SNMP4J be used with Java EE?
      Yes, the SNMP4JSettings class provides the
      option to replace the default thread and timer factories by custom ones that use
      Java EE resources instead of Java SE threads (timers).

    posted @ 2012-05-03 16:09 afunms 閱讀(400) | 評論 (0)編輯 收藏

    Difference between SNMPv1 and SNMPv2

    Difference between SNMPv1 and SNMPv2

    SNMP aka Simple
    Network Management Protocol is a simple request/response protocol. Network
    manager aka SNMP manager issues a request and managed device aka


    SNMP agent returns
    the response. This request/response behavior is implemented using protocol
    operations and information between manager and agent is
    transferred using
    SNMP PDUs (Packet Data Unit).


    SNMPv1 is the
    initial implementation of the protocol and SNMPv2 is an enhancement over
    version 1. The significant differences between SNMPv1 and SNMPv2 are as below:


    Protocol operations used in SNMPv1 are Get,
    GetNext, Set and Trap. SNMPv2 defines two more protocol options GetBulk and
    Inform.

    Trap PDU format is different than other
    PDU’s formats in SNMPv1. In version 2, trap pdu format is same as the format of
    get and set pdu’s.

    In SNMPv1, if in a get request one of the
    object instance in multiple-attribute request does not exist or is invalid, no
    response would be given, only an error message would return. In SNMPv2, in such
    a scenario, response would return for all other object instances or attributes except
    the invalid value i.e. partial response would be there rather than error.

    To know about the difference in implementation of security in SNMP version 1 & 2, please refer this link.

    posted @ 2012-05-02 15:46 afunms 閱讀(315) | 評論 (0)編輯 收藏

    Difference Between SNMP Trap and SNMP Notification

    Difference Between SNMP Trap and SNMP Notification

    We always try to clarify the differences between terminologies that otherwise seem to be similar. In our previous posts, we provided clarification on difference between trap and alarm & difference between trap and inform. As the title suggests, this post talks about difference between SNMP trap and SNMP notification.

     

    If you refer to the SNMP PDU Formats for SNMPv1 and SNMPv2 here, you will realize that SNMPv1 has two different pdu formats, one for trap and another for all remaining snmp operations (get, set etc.). However, in SNMPv2 the pdu format for trap and all other snmp operations (except getbulk) is identical. To standardize the PDU Format of SNMPv1 traps, concept of Notification was introduced in SNMPv2 and same was carried forward to SNMPv3.

    Thus, asynchronous event sent to manager by agent is known as Trap in SNMPv1 and Notification in SNMPv2 and SNMPv3.

    With respect to the MIB definitions and PDU formats, below are the significant difference between Trap and Notification:
    •The macro used for setting trap in SNMPv1 is TRAP-TYPE MACRO and the macro used for setting notifications in SNMPv2/v3 is NOTIFICATION-TYPE MACRO.
    •Trap PDU contains agent address whereas Notification PDU contains error status and error index.
    •TRAP PDU contains information about generic and specific traps whereas Notification PDU contains Trap OID.
    •TRAP is asynchronous. Notification is asynchronous too but SNMV2/SNMPv3 supports confirmed notification known as Inform.

    With reference to RFC2576, if a MIB module is changed to conform to the SMIv2, then each occurrence of the TRAP-TYPE macro MUST be changed to a corresponding invocation of the NOTIFICATION-TYPE macro. Have a look at RFC2576 here for translation rules and further clarification on traps and notifications.

    Hope you find the information presented here useful. Feel free to leave your inputs in the comments section below.

    posted @ 2012-05-01 15:31 afunms 閱讀(405) | 評論 (0)編輯 收藏

    java ldap (1)





    先用ldapbrowser測試下AD服務器,保證AD是可用的。
    以下是java代碼:

     

     

    package com.coreware.ems;

    import java.util.Hashtable;

    import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import javax.naming.directory.*;

    public class SimpleLDAPClient {
        
    public static void main(String[] args) {
            Hashtable env 
    = new Hashtable();

            env.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.sun.jndi.ldap.LdapCtxFactory");
            env.put(Context.PROVIDER_URL, 
    "ldap://192.168.80.130:389/dc=coreware,dc=com");
            env.put(Context.SECURITY_AUTHENTICATION, 
    "simple");
            env.put(Context.SECURITY_PRINCIPAL, 
    "cn=wangfm,cn=Users,dc=coreware,dc=com");
            env.put(Context.SECURITY_CREDENTIALS, 
    "abc123!@#");
            DirContext ctx 
    = null;
            NamingEnumeration results 
    = null;
            
    try {
                ctx 
    = new InitialDirContext(env);
                SearchControls controls 
    = new SearchControls();
                controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
                results 
    = ctx.search("""(objectclass=person)", controls);
                
                
    while (results.hasMoreElements()) {
                    SearchResult searchResult 
    = (SearchResult) results.next();
                    Attributes attributes 
    = searchResult.getAttributes();
                    Attribute attr 
    = attributes.get("cn");
                    String cn 
    = (String) attr.get();
                    System.out.println(
    " Person Common Name = " + cn);
                }

            }
     catch (NamingException e) {
                e.printStackTrace();
            }
     finally {
                
    if (results != null{
                    
    try {
                        results.close();
                    }
     catch (Exception e) {
                    }

                }

                
    if (ctx != null{
                    
    try {
                        ctx.close();
                    }
     catch (Exception e) {
                    }

                }

            }

        }

    }


    運行結果:
     Person Common Name = Administrator
     Person Common Name = Guest
     Person Common Name = afunms
     Person Common Name = db2admin
     Person Common Name = AFUNMS-WIN2008
     Person Common Name = krbtgt
     Person Common Name = wangfm

    posted @ 2012-02-23 15:38 afunms 閱讀(323) | 評論 (0)編輯 收藏

    spring3 json ajax

    spring3---json
    在applicationContext.xml中加入

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">   
            
    <property name="messageConverters">   
                
    <util:list id="beanList">   
                    
    <ref bean="mappingJacksonHttpMessageConverter" />   
                
    </util:list>   
            
    </property>   
        
    </bean>   

    <bean id="mappingJacksonHttpMessageConverter"   
            class
    ="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />

    這樣在action方法加返回bean或map,spring3會把它處理成json格式。如:



    @Controller 
    public class JsonTestController 
        @RequestMapping(
    "/getJsonList"
        @ResponseBody 
        
    public List<ItemTest> searchItemsList() 
        

            ItemTest item 
    = new ItemTest(); 
            item.setItemnum(
    "123"); 
            item.setItemDesc(
    "123desc"); 

            ItemTest item1 
    = new ItemTest(); 
            item1.setItemnum(
    "456"); 
            item1.setItemDesc(
    "456desc"); 
            List
    <ItemTest> list = new ArrayList<ItemTest>(); 
            list.add(item); 
            list.add(item1); 
            
    return list; 
        }


    }


    訪問getJsonList.do返回的就是json形式的數據,注意要加上 @ResponseBody

    ================================================

    spring3---ajax---json
    網上搜索到一般都是這樣:

     

    $(function(){
        $(
    "#doImport").click(
           
    function(){
              
    var importInfo = $("#importInfo").serializeObject();
              $.ajax(
    {
                  url:
    "${base}cmb/doImport.do",
                  contentType :
    "application/json",
                  cache:
    false,
                  type:
    "POST",
                  data:JSON.stringify(importInfo),
                  dataType:
    "json",
                  success: 
    function(data){
                   $('#result').val(data.message)
                   alert(data.message);       
                  }
    ,
                  error:
    function(){
                      alert(
    "失敗");
                  }

             }
    );
        }
    ); 
    }
    );

    我覺得這個方法寫得太復雜了,于是改了它:

    function doImport(){    
        $.ajaxSetup(
    { cache:false });

        
    var data = {excelFileName:$("#excelFileName").val(),
                    sheetName:$(
    "#sheetName").val(),
                    tableName:$(
    "#tableName").val(),
                    startRow:$(
    "#startRow").val(),
                    startCol:$(
    "#startCol").val()}

        
        $.getJSON(
    "${base}cmb/doImport.do",data,function(form){
                   $(
    "#result").val(form.message);
                   alert(form.message); }
    );
    }

    action:

    @RequestMapping("/cmb/doImport.do")
        public @ResponseBody Map
    <String,String> doImport(HttpServletRequest request, ModelMap model){
            System.out.println(
    "===doImport===>>" + DateUtil.getCurrentDateTime());
            String excelFileName 
    = request.getParameter("excelFileName");
            String sheetName 
    = request.getParameter("sheetName");        
            String tableName 
    = request.getParameter("tableName");
            
    int startRow = Integer.parseInt(request.getParameter("startRow"));        
            
    int startCol = Integer.parseInt(request.getParameter("startCol"));    
     
            System.out.println(
    "excelFileName=" + excelFileName);
            System.out.println(
    "sheetName=" + sheetName);
            System.out.println(
    "tableName="+tableName);
            System.out.println(
    "startRow="+startRow);
            System.out.println(
    "startCol="+startCol);
            
            Map
    <String,String> result = new HashMap<String,String>(); 
            result.put(
    "message""導入成功!");

            
    return result;
        }
        

    注意以下幾點:
    1. ajax必須清緩存:$.ajaxSetup({ cache:false });

    2. 將表單的數據組成json格式:
    var data = {excelFileName:$("#excelFileName").val(),
           sheetName:$("#sheetName").val(),
           tableName:$("#tableName").val(),
           startRow:$("#startRow").val(),
           startCol:$("#startCol").val()};
    # XX與表單組件中的ID對應,如
    <input type="hidden" id="excelFileName" value="${excelFileName}" />

    3.表單上必須有一個地方能存放返回值:
    <input type="hidden" id="message" />
    action中的返回值為json格式, 
    $("#result").val(form.message) 這句話將返回值中的result屬性取出賦給表單中的message

    posted @ 2011-10-31 10:29 afunms 閱讀(952) | 評論 (0)編輯 收藏

    用apache.poi讀excel

    public static void main(String[] args) throws Exception {
            POIFSFileSystem pfs 
    = new POIFSFileSystem(new FileInputStream("D:\\test_xls.xls"));             
            HSSFWorkbook hwk 
    = new HSSFWorkbook(pfs);
            HSSFSheet sheet 
    = hwk.getSheet("Sheet1");
            
    try{
                
    int lrn = sheet.getLastRowNum();
                
    for(int r = 0;r<lrn;r++){
                    Row row 
    = sheet.getRow(r);                
                    
    int lcn = row.getLastCellNum();
                    
    for(int c = 0;c<lcn;c++){            
                        
    if(row.getCell(c)==null)
                            System.out.println(
    "R=" + r + ",C=" + c + ":NULL");
                        
    else
                            System.out.println(
    "R=" + r + ",C=" + c + ":" + row.getCell(c).toString());
                    }

                }

            }
    catch(Exception e){
                e.printStackTrace();
            }

        }

    posted @ 2011-10-09 16:53 afunms 閱讀(263) | 評論 (0)編輯 收藏

    portal demo

    1、新建web工程testportal,向工程中添加portal2.0 jar包

    2、創建portlet

    package com.miiwill;

    import java.io.IOException;

    import javax.portlet.GenericPortlet;
    import javax.portlet.PortletException;
    import javax.portlet.RenderRequest;
    import javax.portlet.RenderResponse;

    public class Helloworld extends GenericPortlet {
        @Override
        
    protected void doView(RenderRequest request, RenderResponse response) 
                       
    throws PortletException, IOException {
            response.setContentType(
    "text/html");
            response.getWriter().println(
    "<h2>hello world,View Mode</h2>");
        }


        @Override  
        
    protected void doEdit(RenderRequest request, RenderResponse response)   
            
    throws PortletException, IOException {   
            response.setContentType(
    "text/html");    
            response.getWriter().println(
    "<h2>hello world,Edit Mode</h2>");   
        }
       
    }


    3、修改
    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    >
        
    <servlet>
            
    <!--pluto通過servlet來知道哪個context是portlet,如果沒有這個servlet,portlet就沒法注冊到pluto中-->
            
    <servlet-name>HelloWorldPortal</servlet-name>
            
    <!--在pluto1.0中是org.apache.pluto.core.PortletServlet-->        
            
    <servlet-class>org.apache.pluto.container.driver.PortletServlet</servlet-class>
            
    <!--portlet的名字必須和portlet.xml中portlet的名字一致-->
            
    <init-param>
                
    <param-name>portlet-name</param-name>
                
    <param-value>HelloWorldPortalDemo</param-value>
            
    </init-param>
            
    <!--唯一標識,每個portlet的標識應該都不同-->
            
    <init-param>
                
    <param-name>portlet-guid</param-name>
                
    <param-value>HelloWorldPortal.HelloWorldPortalDemo</param-value>
            
    </init-param>
            
    <!--這個參數是告訴pluto,portlet名字所對應的類是什么-->
            
    <init-param>
                
    <param-name>portlet-class</param-name>
                
    <param-value>com.miiwill.Helloworld</param-value>
            
    </init-param>
            
    <!--PortletServlet執行init時,根據charset參數獲取字符集,
                                   然后在執行響應時調用response.setContentType來設置編碼
    -->
            
    <init-param>
                
    <param-name>charset</param-name>
                
    <param-value>utf-8</param-value>
            
    </init-param>        
            
    <load-on-startup>1</load-on-startup>
        
    </servlet>
        
    <!--映射模板必須以/PlutoInvoker開頭,否則pluto識別不出來-->
        
    <servlet-mapping>
            
    <servlet-name>HelloWorldPortal</servlet-name>
            
    <url-pattern>/PlutoInvoker/*</url-pattern>
        
    </servlet-mapping>
        
    <welcome-file-list>
            
    <welcome-file>index.jsp</welcome-file>
        
    </welcome-file-list>
    </web-app>


    4、創建portlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <portlet-app
        
    xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
        version
    ="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd
                            http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
    >

        
    <portlet>
            
    <description>My First Portal Demo</description>
            
    <portlet-name>HelloWorldPortalDemo</portlet-name>
            
    <display-name>HelloWorld Portal Demo</display-name>
            
    <portlet-class>com.miiwill.Helloworld</portlet-class>
            
    <expiration-cache>-1</expiration-cache>
            
    <supports>
                
    <mime-type>text/html</mime-type>
                
    <portlet-mode>VIEW</portlet-mode>
                
    <portlet-mode>EDIT</portlet-mode>
            
    </supports>
            
    <portlet-info>
                
    <title>My First Portal Demo : HelloWorldPortal</title>
            
    </portlet-info>
        
    </portlet>
    </portlet-app>


    5、部署portal

    將WebRoot copy到webapps下,改名為testportal。

    注意將WEB-INF\lib中的2 個jar刪除,因為pluto的lib中已經有了。不刪除會有沖突!

     1)啟動pluto,http://localhost:8080/pluto/

        以pluto/pluto登錄。

     2)創建一個頁


         3)注冊portlet

         4)測試portlet

    posted @ 2011-09-30 09:07 afunms 閱讀(622) | 評論 (0)編輯 收藏

    pluto安裝

    從apache網上下載pluto-2.0.3-bundle.zip
    解壓后,修改bin\startup.bat,配置上jdk
    set JAVA_HOME=../../jdk1.6.0_03

    然后啟動pluto,發現有錯。查看日志
    Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/E:/nms4/pluto/webapps/pluto/WEB-INF/lib/jaxb-impl-2.1.9.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)
     at com.sun.xml.bind.v2.model.impl.ModelBuilder.<clinit>(ModelBuilder.java:173)
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:432)
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:297)
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139)
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117)
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:188)

    估計是jaxb造成的,于是將webapps\pluto\WEB-INF\lib下的jaxb-impl-2.1.9.jar刪除。
    再啟動pluto,成功!

    posted @ 2011-09-28 10:06 afunms 閱讀(481) | 評論 (0)編輯 收藏

    My Links

    News

    留言簿(18)

    隨筆檔案

    相冊

    搜索

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 国产精品亚洲一区二区三区久久| 国产真人无码作爱视频免费| 国产亚洲精品高清在线| 99久久国产免费-99久久国产免费| 亚洲另类古典武侠| 亚洲国产精品综合久久网络| 久久精品视频免费播放| 亚洲国产午夜精品理论片在线播放 | 免费人成网上在线观看| 亚洲人成影院在线| 免费永久在线观看黄网站| 国产精品免费观看调教网| 久久精品国产亚洲av品善| 亚洲美女aⅴ久久久91| 亚洲国产精品综合久久一线| 少妇高潮太爽了在线观看免费| 9久热这里只有精品免费| 亚洲日韩精品A∨片无码加勒比| 亚洲乱码一区二区三区在线观看| 成人男女网18免费视频| 久久精品免费视频观看| 无遮挡免费一区二区三区| 亚洲高清中文字幕免费| 久久亚洲精品成人综合| 亚洲精品97久久中文字幕无码| 无码av免费毛片一区二区| 91成人免费观看在线观看| 亚洲av午夜国产精品无码中文字| 麻豆亚洲AV永久无码精品久久 | 亚洲精品福利网站| 亚洲中文字幕视频国产| 成人毛片免费观看视频大全| 99re6热视频精品免费观看| 本道天堂成在人线av无码免费| 亚洲人成未满十八禁网站| 亚洲第一二三四区| 亚洲国产一区二区三区青草影视| 中文字幕不卡亚洲| 亚洲精品一级无码鲁丝片| 国产乱弄免费视频| 国产美女a做受大片免费|