一个我觉得很奇怪的C语言问题 求高手解答

一个求π的小程序,包含头文件#include<math.h>时输出:3.1414。不包含时竟然没出现编译错误,且输出了:3.2837。这是为什么?
代码:
#include<stdio.h>
#include<math.h>
float porc(float num)
{
int s;
float n,t,pi;
t=1;pi=0;n=1;s=1;
while(fabs(t)>=num)
{
pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
return pi;
}
int main(void)
{
    printf("%.4f\n",porc(0.0001));
    return 0;
}

回答: 一个我觉得很奇怪的C语言问题 求高手解答

  1. 编译器处理浮点数的模块是被"动态"加载的,也就是说,如果你没有显式地定义一个变量(只是声明),那么这个处理浮点数的模块就可能不被编译器加载,从而不能正确的处理浮点数。

    例如:
    float a;                 //编译器可能没有加载模块
    float b = 1.0f;      //编译器加载模块
    float c = 1;           //不知编译器是否加载模块

    我的猜测是:math.h头文件中显式使用浮点数定义,所以编译器加载了浮点数处理模块(在模块加载后,编译器可以正确处理后续的浮点数)
    我的建议:去掉math.h头文件后在你的porc函数中浮点类型变量使用显式定义,例如float n=0.0f,t,pi;并且将浮点定义放到函数作用域的最前端试试

    个人意见,仅供参考

    这个纯粹是主观臆测了,根本就没有这回事。
    真实的情况是fabs的原型是double fabs(double x);
    如果没有
    #include <math.h>
    对于fabs(t)这个函数调用有些编译器会假定fabs的原型是int fabs(float); 也就是所谓的隐式声明;
    而有的编译器会警告,更严格的编译器会报错。

    在楼主的例子里,#include <math.h> 的作用就是为fabs提供函数原型,
    自己写个声明也有同样的作用
    double fabs(double x);

    当然,推荐的方法是包含头文件。

电脑不能联网的奇怪问题,求高手解答

  1. Q
    实验室新进一批DELL台式电脑,连不上网,各种诡异问题。首先说背景,现在实验室大家采用3种方式联网:
    方式1:通过教研室内置网线。
    方式2:通过无线上网卡无线连接TP-link上网
    方式3:从TP-Link分接器端口上牵一根网线直接上网
    这三种方式的终端都连接在一台交换机上。

        好问题来了。DELL电脑能够通过方式2、方式3正常上网,但不能通过方式1。当由方式1连接(假设是经由网线端口A),倘若电脑的IPv4设置为自动配置IP,显示一个框框带一个感叹号;倘若手动配置IP&DNS等,则表现奇葩,电脑显示网络已经连接,但是无论是网页还是登陆QQ均显示没有网络信号。
       奇葩之处还不在这儿,最近又买了几台联想的电脑,倘若在上述的A端口,由方式一连网时,却能很正常的上网。
    这到底是网线的问题还是交换机的问题还是电脑的问题呢,这些原因好像都可以一一排除。

    能由方式2和3上网说明电脑没问题
    能联想可以连接戴尔不能连接,说明实验室内置网线没有问题

    如此奇葩的表现,我等是实在百思不得其解。求高手解答
  2. A
    DELL电脑网卡驱动装错了啵

将数据从一个数据库表中导入另一个数据库表中为何实现不了,求高手指点

  1. Q
    将数据从一个数据库表中导入另一个数据库表中为何实现不了,求高手指点
    insert into   bizbakdb.dbo.customer (num,name,telephone,address,conperson) 
    select *  from bizdb.dbo.customer ;
  2. A

    select * into bizbakdb.dbo.customer  from bizdb.dbo.customer ;

    试一下这个

仿微信做一个聊天页面气泡布局遇到的问题,求高手指导一下

  1. Q
    最近在做一个类似微信的聊天气泡的页面。遇到一些问题,请高手指导一下,谢谢。
    我的构思是用一个ListVIew来实现,左右分别用带气泡背景的RelavtieLayout来实现。
    右边的气泡的布局如下:
    <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <RelativeLayout android:id="@+id/rl_bubble_right"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:backgroup="@drawable/bubble_right">

    <ImageView android:id="@+id/img_icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:laytou_marginRight="10dp"/>

    <TextView android:id="@+id/img_icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/img_icon"
    android:laytou_marginRight="10dp"
    android:layout_marginLeft="10dp"
    android:textSize="18sp"
    android:textColor="@color/white"/>

    </RelativeLayout>
    </RelativeLayout>
    我的目的是做一个带有图标的气泡,图标(img_icon)在气泡的右边,离边距10个DP, 在图标的右边放一个TextView,TextView内容动态生成,且TextView距图标10个dp,离气泡的在左边距也是10个dp。
    但是按上面的布局来做,达不到想要的效果,气泡(rl_bubble_right)被拉长到了屏幕宽度,我调了好久都没有效果,求高手指导一下,问题出在那里,怎么改进,谢谢。
  2. A

    为TextView设置个最大的宽度,试试呢

    TextView设置了wrap_content的话,最大宽度貌似不起作用吧


    我设置了wrap_content, 之后设置android:maxWidth,没有异常

EXCEL2007连接OLAP的奇怪问题!!~~(等待高手解答 附图)

  1. Q
        1.我在局域网里测试,有一部分电脑可以连接OLAP数据源 有一部分电脑不可以连接,问题比较奇怪,我用excel2007连接的时候当输入好地址和用户名之后点下一步的时候立刻弹出提示如图EXCEL2007连接OLAP的奇怪问题!!~~(等待高手解答 附图)

    所有电脑都用的相同的地址相同的用户名密码,但是出现了这个情况 请问是什么情况 是否是缺少了某些dll文件或者缺少补丁之类的呢?等待高手解答
  2. A
    恐怕还是要查查网络连接行不行.

stm32 SPI的一个问题,很奇怪,求大神指导

  1. Q
    自己做的板子,232,422调试成功之后调试SPI借口,ARM型号是stm32103FRET6,调试的时候如果发送的是char类型的字母或数字,在串口调试工具之中显示的跟发送的有错位,但是还能接受到,如发送SPI,接受的到的是(SPI,很不解,后来发送16进制数,发送0x1A,得到的完全不搭边,以下是调试的代码,求大神指导:
    #include "stm32f10x.h"
    #include <stdio.h>
    #include <string.h>
    #include "math.h"
    #include "stm32f10x_spi.h"
    void Delay(vu32 nCount)
    {
      for(; nCount != 0; nCount--);
    }
    void RCC_cfg(void);    
    void GPIO_cfg(void);    
    void USART_cfg(void);  
    void NVIC_cfg(void);  
    void SPI2_Config(void); 
    char fasong(char byte);
    char jieshou(char byte);
    u16 SPIx_ReadWriteByte(u16 TxData);
    int main()   
    {  
    int j;
    int i;
    char bit[8]={0x1A};
    char sbit[8];
    GPIO_cfg();  
    RCC_cfg(); 
      USART_cfg();  
    SPI2_Config();
    fasong(bit[8])    ;
    sbit[8]=jieshou(bit[8]);
    USART_ClearFlag(USART3,USART_FLAG_TC); 
        for(j=0;j<10000;j++)  
        {  
    for(i=0;i<20;i++)  
    {
    USART_SendData(USART3,sbit[i]);  
     //等待数据发送完毕  
          while(USART_GetFlagStatus(USART3, USART_FLAG_TC)==RESET)
    {

    }
    Delay(0x3FFFF);
       GPIO_SetBits(GPIOA, GPIO_Pin_6); 
    Delay(0x3FFFF);
    GPIO_ResetBits(GPIOA, GPIO_Pin_6);
    }
         }  
    }  
     
    //RCC时钟配置   
    void RCC_cfg(void)    
    {  

          //定义错误状态变量
     ErrorStatus HSEStartUpStatus;
     RCC_ClocksTypeDef RCC_Clocks1;
     //将RCC寄存器重新设置为默认值
     RCC_DeInit();
     //打开外部高速时钟晶振
     RCC_HSEConfig(RCC_HSE_ON);
     //等待外部高速时钟晶振工作
     HSEStartUpStatus = RCC_WaitForHSEStartUp();
     if(HSEStartUpStatus == SUCCESS)
     {
     //设置AHB时钟(HCLK)等于系统时钟
     RCC_HCLKConfig(RCC_SYSCLK_Div1);
     
     //设置高速AHB时钟(APB2)为HCLK时钟
     RCC_PCLK2Config(RCC_HCLK_Div1);
     
     //设置低速AHB时钟(APB1)为HCLK的2分频
     RCC_PCLK1Config(RCC_HCLK_Div2);

     //设置FLASH代码延时
     FLASH_SetLatency(FLASH_Latency_2);
     
     //使能预取指缓存
     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
     
     //设置PLL时钟,为HSE的2分频后9倍频 8MHz * 9 = 72MHz
      RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
     
     //使能PLL
     RCC_PLLCmd(ENABLE);
     //等待PLL准备就绪
     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); 
     //设置PLL为系统时钟源
     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
     //判断PLL是否是系统时钟
     while(RCC_GetSYSCLKSource() != 0x08);
     RCC_GetClocksFreq(&RCC_Clocks1);
     }
       //打开GPIO时钟,复用功能,串口1的时钟
       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1, ENABLE);
          //打开GPIOB的时钟
       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
       //打开串口3的时钟
       RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);

    //IO口配置     
    void GPIO_cfg()    
    {   

    GPIO_InitTypeDef GPIO_InitStructure;  
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    //串口3配置
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB , &GPIO_InitStructure);  
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOB, &GPIO_InitStructure); 
    //点亮LED灯
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; 
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
       GPIO_Init(GPIOA, &GPIO_InitStructure);
    GPIO_ResetBits(GPIOA, GPIO_Pin_6);
    }  
    //串口初始化   
    void USART_cfg()    
    {  
           USART_InitTypeDef USART_InitStructure;  
           //将结构体设置为缺省状态   
           USART_StructInit(&USART_InitStructure);  
        //波特率设置为115200   
           USART_InitStructure.USART_BaudRate = 115200;  
           //一帧数据的宽度设置为8bits   
           USART_InitStructure.USART_WordLength = USART_WordLength_8b;  
           //在帧结尾传输1个停止位   
           USART_InitStructure.USART_StopBits = USART_StopBits_1;  
           //奇偶失能模式,无奇偶校验   
            USART_InitStructure.USART_Parity = USART_Parity_No;  
           //发送/接收使能   
           USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;  
           //硬件流控制失能   
           USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;  
           //设置串口3   
           USART_Init(USART3, &USART_InitStructure);  
           //打开串口1的中断响应函数,接收中断   
        //  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);  
            //打开串口3   
           USART_Cmd(USART3, ENABLE);  
    }  
     
    //配置中断   
    void NVIC_cfg()  
     {  
            NVIC_InitTypeDef NVIC_InitStructure;  
            NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);                                               //选择中断分组2   
            NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;                              //选择串口2中断   
            NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;                                 //抢占式中断优先级设置为0   
            NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;                                            //响应式中断优先级设置为0   
            NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                 //使能中断   
            NVIC_Init(&NVIC_InitStructure);   
    }  

    void SPI2_Config(void)
    {
    SPI_InitTypeDef  SPI_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;  
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
    SPI_Cmd(SPI2,DISABLE);
    /* Configure SPI1 pins: SCK and MOSI  */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 |GPIO_Pin_14|GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //推挽复用输出
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    //SPI1 NSS 
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
    /* SPI configuration -------------------------------------------------------*/
    //SPI_I2S_DeInit(SPI2);
    //SPI_Cmd(SPI2, DISABLE);
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
    SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //CLK空闲时为电平
    SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
    SPI_InitStructure.SPI_CRCPolynomial = 7; //crc7,stm32spi带硬件ecc
    SPI_Init(SPI2, &SPI_InitStructure);
    //SPI_TIModeCmd(SPI2, ENABLE);
    SPI_Cmd(SPI2,ENABLE);
    }

    char jieshou(char byte)
    {
    while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
    SPI_I2S_SendData(SPI2, byte); 
    while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET); 
    return SPI_I2S_ReceiveData(SPI2); 
    }

    char fasong(char byte)
    {
    while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
    SPI_I2S_SendData(SPI2, byte); 
    while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET); 
    SPI_I2S_ReceiveData(SPI2); 
    }

       
  2. A
    “自发自收”是将MISO和MOSI接一起了么,这样不行

    因为这样MISO和MOSI上信号就是同时出现的(假设STM32-SPI做主),这样你在下面函数里就把MISO的数据收回来了

    char fasong(char byte)
    {
    while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
    SPI_I2S_SendData(SPI2, byte);                // 这里发送
    while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET); 
    SPI_I2S_ReceiveData(SPI2);                   // 这里接收,然后被抛弃掉了
    }

    SPI虽然是全双工的,但由于是同步串口,只靠主机的时钟信号来启动收发过程,因此你发一个数,同时也收一个数
    无论你是否想收数据。同样你想收一个数,也要发一个无效的数。

    实际应用中,SPI都是按半双工使用的,做主的一方,发送一个数时,同时也收一个废数丢掉。收的时候,发一个废数,以启动时钟输出。而做从的一方,检测时钟,时钟有了,开始收数,如果有待发的数,同时把数据发出去。

一个dwr问题,很奇怪!!

  1. Q
     
      在http://127.0.0.1:8080/poject/dwr  里测试成功,可以调用到那个方法,并且是想要的结果!!

    但在jsp页面种,调用dwr类里的方法无法进入改方法 没任何异常和提示

    以下是dwr配置文件
    <?xml version="1.0" encoding="UTF-8"?>   
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">      
    <dwr>   
        <allow>   
            <create creator="spring" javascript="Test">   
                <param name="beanName" value="usingdwr" />   
            </create>   
        </allow>   
    </dwr>  
    


    以下是web.xml配置问下
    	<!-- Spring监听 -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>
    			/WEB-INF/classes/applicationContext.xml
    		</param-value>
    	</context-param>
    	<listener>
    		<listener-class>
    			org.springframework.web.context.ContextLoaderListener
    		</listener-class>
    	</listener>
    
    	<!-- dwr -->
    	<servlet>
    		<servlet-name>dwr-invoker</servlet-name>
    		<servlet-class>
    			org.directwebremoting.servlet.DwrServlet
    		</servlet-class>
    		<init-param>
    			<param-name>debug</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>dwr-invoker</servlet-name>
    		<url-pattern>/dwr/*</url-pattern>
    	</servlet-mapping>
    
    



    以下是 applicationContext.xml
    	<!-- dwr配置 -->
    	<bean id="usingdwr" class="dwr.TestDwr">
    		<property name="dao">
    			<ref bean="dao" />
    		</property>
    	</bean>
    


    一下是dwr类
    	public boolean valeng(String names){
    		
    	   System.out.println("-----");
    	   Query query = getSession().createQuery("FROM Account WHERE account=? ");
    	   query.setString(0,names);
    	   List list = query.list();
    	   for(int i=0;i<list.size();i++){
    		   dao.Account account =  (Account)list.get(i);
    		   if(account.getAccount().equals(names)){
    			   return false;
    		   }
    	   }
    		return true;
    	}
    



    jsp页面文件
    
    		<script type="text/javascript" src="/test/dwr/util.js"></script>
    		<script type="text/javascript" src="/test/dwr/engine.js"></script>
    		<script type="text/javascript" src="/test/dwr/interface/Test.js"></script>
    		<script type="text/javascript">
    	   function regUserChked()
    	    {
    	        var username =${"account"}.value;
    	        Test.valeng(username,showData);
    	    }
    	    function showData(data)
    	    {
    	        if(data){   
                 DWRUtil.setValue("userMsg","Can be registered!");   
                }else{   
                 DWRUtil.setValue("userMsg","Has been in existence for!");         
                }
    	    }
    }
            </script>
    	</head>
    
    	<body>
    		<form action="ad.do?method=add_acount" method="post">
    			<table width="404" height="118" border="1">
    				<tr>
    					<td height="20">
    						username:
    						<input type="text" name="account" id="account"
    							onblur="regUserChked()" />
    						<span id="userMsg" ></span>
    					</td>
    					<td>
    						2
    					</td> 
    				</tr>
    				<tr>
    					<td height="24">
    						password:
    						<input type="password" name="passwords">
    					</td>
    					<td>
    						4
    					</td>
    				</tr>
    				<tr>
    					<td width="206">
    						<input type="submit" value="submit" id="submit">
    					</td>
    					<td width="182">
    						<input type="reset" name="ru" value="reset">
    					</td>
    				</tr>
    			</table>
    		</form>
    	</body>
    </html>
    


    问题补充:
    还是不行啊一个dwr问题,很奇怪!!

    问题补充:
    可以了 郁闷啊,多了个括号,js调试真是让人晕哪。。。。。一个dwr问题,很奇怪!!
  2. A
    function regUserChked()  
            {  
                var username =${"account"}.value;   //这里写错啦,应该是var username =$("account").value;
                Test.valeng(username,showData);  
            } 

新手菜鸟。。求问怎么用c语言写一个使输入的数字倒序排列的程序(>_<)求高手解答

  1. Q
    我直接复制粘贴的题目。。。不知道英文可不可以。。
    Description

      Reverse the input string.
    Input

      There’re multiple cases. For each case there’s one line containing a string, witch length is no more than 100. Input is end with EOF.
    Output

      For each test case, output the reversed string on one line.
    Sample Input
    Copy sample input to clipboard

    123

    Sample Output

    321

  2. A
    #include<stdio.h>
    void main(){
    int a;
    int b;
    printf("请输入一个整数\n");
    scanf("%d",&a);
    while(a>0){
    b=a%10;
    a=a/10;
    printf("%d",b);
    }
    }

一个很低级的问题,请各位高手解答~

  1. Q
    怎么把网叶里的FLASH保存下来?           
  2. A
    还可以用netant直接下载,对着它的URL右键就搞定。

EJB+jboss实现远程调用时出现的奇怪问题,求高手解答。跪谢!

  1. Q
    在客户这边做实施,开发了一个cs的工具,由于我们需要查询远程的oracle数据库,但又不能直接访问服务器的1521端口,所以就想了个解决的办法:写算法到ejb中,用jboss发布,调用1099端口就可以了,以http的形式实现的远程数据传输。


    //连接远程jbosss的方法,以http的形式实现
    public static Object getEJB(String jndipath) {
       try {

    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.HttpNamingContextFactory");
    p.put(Context.PROVIDER_URL,"http://YOUR_IP:YOUR_POST/unified-invoker/JNDIFactory/?return-exception=true");
    p.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
    InitialContext ctx = new InitialContext(p);
    Object oo = ctx.lookup(jndipath);
    return oo;
       } catch (Exception e) {
    e.printStackTrace();
    return null;
       }
    }



    这个本来是没有错的,在我本机上就完全没问题,我也在别人的电脑上试过了,大部分人都可以用,但就那么几个用不了,开始没注意,今天客户这边还真有人遇到了相同的问题:

    就是不明白这个东西为什么跑到不同的计算机上,有的报错有的可以执行?和什么有关?我该怎么修改?都蒙了已经 

    说明:1:为了使这个cs的工具可以在不安装java虚拟机的计算机上运行,所以在工具中加入了jre1.6.0,
          2:远程服务器上的jboss版本为jboss-4.2.2.GA,听说这个版本的jboss有很多bug,和这个有关?但就是不明白为什么有的电脑可以用,有的就不行!!!!


    报错内容如下:


    org.jboss.remoting.CannotConnectException: Cannot connect http client invoker.
    at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:333)
    at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:135)
    ...
    ...

    Caused by: java.io.InvalidClassException: com.sun.rowset.providers.RIOptimisticProvider; local classincompatible: stream classdesc serialVersionUID = -3143367176751761936, local class serialVersionUID = -8429279896237029122
    at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
    at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    ...
    ...

    org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:239)
    at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:133)
    at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:120)
    at org.jboss.remoting.marshal.http.HTTPUnMarshaller.read(HTTPUnMarshaller.java:69)
    at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:471)
    at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:305)
    ...
    ...
    at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107)
    at $Proxy1.getCachedRowSet_Query(Unknown Source)
    at hdaty.ui.UserLanding$LoginUser.run(UserLanding.java:343)

    Caused by: java.io.InvalidClassException: com.sun.rowset.providers.RIOptimisticProvider; local class incompatible: stream classdesc serialVersionUID = -3143367176751761936, local class serialVersionUID = -8429279896237029122

    at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
    at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    ...
    ...


  2. A
    先把防火墙关了,试试吧,在不行就不清楚了