请教关于STK application

1.STK开发,运营商服务端与客户的手机终端是怎样实现信息交互的?SIM卡厂商的不同对STK开发的影响是怎么产生的?
我的理解是这样的:SIM厂商都有自己的STK,那么运营商交互的方式应该是,运营商通过短信发送一个指令到手机终端,手机终端取得这个指令以后从SIM中读取信息作出相应反馈信息(我觉得这里就跟SIM厂商有关了,指令的定义由SIM卡厂商定义的,运营商要实现通信就要符合卡商的指令定义)

2.STK开发目前市场主要用于实现那些功能?

3.OTA command是通信指令么,AT command又是什么意思?与SIM卡的厂商有关系么?

4.国内有哪些做STK开发比较好的软件开发商?

回答: 请教关于STK application

  1. SIM厂商都有自己的STK

    ----------
    STK是标准的,符合11.14规范。
    各厂商只有自己的STK实现方式,比如直接写程序实现,靠ota脚本实现,靠java卡实现。

    STK用来在卡上实现一些附加功能,比如短信群发。

    at指令是操作短信猫的

    ota规范可以用来实现stk应用

    做stk的过去就是那几个卡商,现在有一部分公司通过卡贴也在做。

请教:Application.ProcessMessages,在service中应该如何写?

  1. Q
    请教一个问题,在非Service中的一个函数中,sleep前,Application.ProcessMessages,可以正常处理,但是在service中,这个Application.ProcessMessages没有了,有什么可以代替吗?
  2. A
    囧,Service的Application是重新封装的,不是VclApplication,没专门的消息处理,自己模拟吧!

200分请教,怎样使用caching application block实现数据缓存(存成二进制文件),请给详细代码,谢谢

  1. Q
    我想使用caching application block应用程序块实现把dataset数据加密后缓存成二进制文件,并且把二进制文件还原回dataset,


    请问各位高手,该怎么做(请给出详细代码,谢谢)
  2. A
    to see how to set up

    Understanding Microsoft’s .net Caching Application Block
    http://www.netreverie.com/Article_CachingBlock.asp


    some pseudo code,

    to add,

    sting strKey = "YourData";

    CacheManager cacheManager = CacheManager.GetCacheManager();
    byte[] bs = ...; //encrypt....
    cacheManager.Add(strKey,bs);

    to retrieve,
    byte[] bs = (byte[])cacheManager.GetData(strKey);
    //decrypt...
    MemoryStream ms = new MemoryStream(bs);
    DataSet ds = new DataSet();
    ds.ReadXml(ms);

    also, you might want to look into Enterprise Library
    http://msdn.microsoft.com/library/en-us/dnpag2/html/entlib.asp?frame=true

:请教各位:我若在vb里打开word,用完后将其关闭将触发什么事件(word是名为a的application)

  1. Q
  2. A

    yang111说得对,应该是Quit事件,close事件发生在一个Word Application中的document
    关闭时,而word Application的关闭,应该是Quit事件。

请教:融合窗体句柄的问题

  1. Q
    现状如下:

    (1).    A.exe  是主程序,上面有一个button1,点击后,运行子系统B.exe,并融合到A.exe的pageControl(或panel)上来。
        通过 windows.SetParent来实现B.exe融合到A.exe中来的。

    (2).   B.exe中有一个按钮,点击代码如下:
            form1:=Tform1.create(self);
            form1.showmodal;
            form1.release;

    运行后,B能正常融合,点击B中的按钮,表单form1也能正常工作,包括TAB等都能正常工作。

    但是:无意中切换到已打开的EXCEL或其他任务栏中的程序,再回来时,发现刚打开的form1不见了,
          于是用ALT+TAB 进行切换,找到了刚找开的form1,原来跑到A.exe(最大化)后面去了。

    于是:修改B.exe中按钮的代码:
          form1:=Tform1.create(self);
          form1.ParentWindow:=application.MainForm.Handle; //加了这句
            form1.showmodal;
            form1.release;

    再运行,并点击任务栏下的其他内容,再回到A.exe中来,form1还在(这次没有“消失”),但是form1窗体标题始终不能成激活状态,即使用鼠标点击窗体标题,也不能成激活状态。后发现,点击B.exe按钮,form1出现时,窗体就不能成激活状态。

    后来又用了 setActiveWindow、SetForcegroundWindow、PostMessage等想将form1设置成激活状态,一直不行。

    后来又用SPY想强行激活,也不行。

    所以,请教各位高手,我哪一个环节出现问题了。网上也找了DLL融合的方法进行参考,没有能解决。
  2. A
    这是两个不同进程之间的通信,去百度找找例子吧,有的

[email protected][email protected][email protected]!

  1. Q
    各位大大,请问个问题:我在持久层、业务层和控制层中分别使用

    @[email protected][email protected]

    [email protected]
    问题补充:myali88 写道引用
    @[email protected][email protected]

    [email protected]

    没什么差别,差别只是在语义上,@[email protected][email protected],这个有点类似于HTML 5提出的语义化标签,你说HTML 5里面的“header”和“div”有什么差别呢,其实功能上来说没有,只是语义表达的更清楚。
    嗯那么我在DAO和SERVICE中该用哪个注解呢?[email protected]
    因为我比较菜刚开始认识注入,还有就是现在注入遇到点问题,我的Application-context.xml中配置了: <context:component-scan base-package="com.hexun.dataManager"/>
    [email protected][email protected][email protected][email protected]有注入进去呢就是一使用Service就报NullPointException,Service是空的。
    问题补充:freish [email protected]@Service 和 @Controller。在目前的 Spring 版本中,和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。

    虽然目前这 3 个注释和 @Component 相比没有什么新意但 Spring 将在以后的版本中可能会为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @[email protected] 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。
    嗯那么我在DAO和SERVICE中该用哪个注解呢?[email protected]
    因为我比较菜刚开始认识注入,还有就是现在注入遇到点问题,我的Application-context.xml中配置了: <context:component-scan base-package="com.hexun.dataManager"/>
    [email protected][email protected][email protected][email protected]有注入进去呢就是一使用Service就报NullPointException,Service是空的。
    是不是我少了哪些配置了呢~?
    问题补充:AngelAndAngel 写道引用
    嗯那么我在DAO和SERVICE中该用哪个注解呢?[email protected]
    因为我比较菜刚开始认识注入,还有就是现在注入遇到点问题,我的Application-context.xml中配置了: <context:component-scan base-package="com.hexun.dataManager"/>
    [email protected][email protected][email protected][email protected]有注入进去呢就是一使用Service就报NullPointException,Service是空的。


    DAO,[email protected],它这一层是数据的入口和出口,对数据库最基本的操作,有时候我们注解这个类,更多的是对它有个数据库操作的管理,比如你继承了spring自己的hibernateDAo这样的东西,那怎么给你注入一些数据库操作的元素了,就靠它了,所以这个不是随便注释的。
    [email protected],因为service我们知道,需要对事务进行控制对吧,那么怎么办到了,肯定得统一用注解来标识,才能办到。

    你那种配置方法配置错了。
    标准配置方法是:
    pojo:配置
    @Entity
    @Table(name = "ACTE_BMSZ", schema = "HB_TALENTS")


    dao:配置
    @Repository


    service[email protected]

    额,[email protected]@Service都还是不能在Action中得到这个Service呢- -。是不是还有其它地方要配置的,比如XML是不是还有什么配置?
    问题补充:AngelAndAngel 写道你的applicationContext.xml里面需要配置
    		<property name="sessionFactory" ref="sessionFactory"/>
    
    </bean>

    <!--使用基于注解方式配置事务-->
    <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>

    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation"
    value="classpath:hibernate.cfg.xml">
    </property>
    </bean>


    请教下!<context:annotation-config/>具体是怎么配置呢?就是把这句放到Application-Context里就OK了么?
    问题补充:myali88 写道引用
    [email protected]有注入进去呢就是一使用Service就报NullPointException,Service是空的。

    [email protected]
    <context:annotation-config/>

    你加了没有?
    这个加了之后。还是依旧的问题。。。
    问题补充:myali88 写道你需要加上context的命名空间就可以了,像这样:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans 
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-2.5.xsd">
                   
         <context:annotation-config/>
         
    </beans>
    

    还有就好就是你所有声明Bean的注解(@[email protected] 和 @Controller )的类都必须在org.yourpackage包下面。


    对我就是这么配置的呢,挨个挨字对照了一遍呢。
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <context:component-scan base-package="com.xunhe.dataManager"/>
    <context:annotation-config/>
    让各位大大费心了!

    问题补充:myali88 写道
    <context:annotation-config/>  

    这个可以不需要,因为
    <context:component-scan base-package="">
    已经隐含激活了。
    引用
    Note: This tag implies the effects of the 'annotation-config' tag, activating
    @Required, @Autowired, @PostConstruct, @PreDestroy, @Resource, @PersistenceContext and
    @PersistenceUnit annotations in the component classes, which is usually desired for autodetected
    components (without external configuration).

    应该是其他的问题,你是怎么注入Service,贴出来看看。


    首先这个是UserInfoService:
    package com.xunhe.dataManager.service;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    import org.springframework.stereotype.Repository;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;

    import com.xunhe.dataManager.dao.user.UserInfoDao;
    import com.xunhe.dataManager.entity.user.UserInfo;

    @Component
    public class UserInfoService {

    @Autowired
    private UserInfoDao userInfoDao;

    public void userReg(UserInfo userInfo){
    userInfoDao.userReg(userInfo);
    }
    }


    这个是LoginAction:
    package com.xunhe.dataManager.action.user;

    import javax.annotation.Resource;

    import org.apache.struts2.convention.annotation.Namespace;
    import org.apache.struts2.convention.annotation.Result;
    import org.apache.struts2.convention.annotation.Results;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Controller;

    import com.opensymphony.xwork2.ActionSupport;
    import com.xunhe.dataManager.entity.user.UserInfo;
    import com.xunhe.dataManager.service.UserInfoService;

    @Scope("prototype")
    @Controller
    public class LoginAction extends ActionSupport {

    private static final long serialVersionUID = -3120126275751197384L;
    @Autowired
    private UserInfo userInfo;
    @Autowired
    private UserInfoService userInfoService;

    private String result;

    public UserInfoService getUserInfoService() {
    return userInfoService;
    }
    public void setUserInfoService(UserInfoService userInfoService) {
    this.userInfoService = userInfoService;
    }
    public UserInfo getUserInfo() {
    return userInfo;
    }
    public void setUserInfo(UserInfo userInfo) {
    this.userInfo = userInfo;
    }
    public String getResult() {
    return result;
    }
    public void setResult(String result) {
    this.result = result;
    }

    public String userLogin(){
    System.out.println("Test : 用户开始登录!");

    if(userInfo.getUserEmail().equals("")){
    System.out.println("userEmail is null!");
    addFieldError("EmailError", "Please Input your Email!");
    if(userInfo.getUserPwd().equals("")) {
    System.out.println("userPwd is null!");
    addFieldError("PWDError", "Please Input your PWD!");
    }
    result="/index.jsp";
    return SUCCESS;
    }

    System.out.println("userEmail : " + userInfo.getUserEmail());
    System.out.println("userPWD : " + userInfo.getUserPwd());

    if(userInfoService==null){
    System.out.println("UserInfoService is Null!");
    }

    userInfoService.userReg(userInfo);

    result="/user/login.jsp";
    return SUCCESS;
    }
    }

    这样运行起来,页面是这样:
    <form action="<%=request.getContextPath() %>/user/Login_userLogin" method="post">
    <table>
    <tr>
    <td>Email:</td>
    <td><input name="userInfo.userEmail" type="text" maxlength="100"/></td>
    <s:fielderror fieldName="EmailError"></s:fielderror>
    <td><a href="">sign now!</a></td>
    </tr>
    <tr>
    <td>Pwd:</td>
    <td><input name="userInfo.userPwd" type="text" maxlength="20"></td>
    <s:fielderror fieldName="PWDError" ></s:fielderror>
    <td><a href="">forget Pwd?</a></td>
    </tr>
    <tr>
    <td colspan="3"><input type="submit" value="LoginNow!"/> </td>
    </tr>
    </table>
    </form>

    这样还是抛出控指针异常,并提示UserInfoService为Null
    问题补充:myali88 写道另外你可以通过spring日志看看你定义的Service,dao等类是否都创建了,因为默认情况下单例Bean不会延迟创建的。如果你通过注解声明的Bean都创建了,那就是注入Bean的地方出错了。
    这个。srping日志是指的在控制台上显示的那堆东西么~?
    问题补充:myali88 写道另外你可以通过spring日志看看你定义的Service,dao等类是否都创建了,因为默认情况下单例Bean不会延迟创建的。如果你通过注解声明的Bean都创建了,那就是注入Bean的地方出错了。
    会不会是没有读取到Application-Context呢?因为我把这个Application-Context文件拷贝到桌面上把原来的删了,这个程序照常运行呢。。。
    问题补充:myali88 写道另外你可以通过spring日志看看你定义的Service,dao等类是否都创建了,因为默认情况下单例Bean不会延迟创建的。如果你通过注解声明的Bean都创建了,那就是注入Bean的地方出错了。
    我的Application-Context是放在和src同级的resources目录下的
    在web.xml中有如下配置:
    <!--applicationContext.xml配置文件分成多个,让配置的spring监视器每个都能加载到 -->
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:applicationContext-*.xml</param-value>
    </context-param>

    问题补充:AngelAndAngel 写道
    @Autowired 
    private UserInfo userInfo; 
    

    貌似这个东西注入是多余的吧
    嗯那我把它删了。我以为有用- [email protected]一下就白写了。
    问题补充:myali88 写道引用这样还是抛出控指针异常,并提示UserInfoService为Null
    这个个说明你注入不成功。你可以尝试在声明Service采用:
    @Service("myMovieFinder")
    public class MovieFinder {
        // ...
    }
    

    这样在Action注入是通过Resource引用名字来注入:
    public class SimpleMovieLister {
    
        @Resource(name="myMovieFinder")
        private MovieFinder movieFinder;
    
    }
    

    类似这样的做法。


    尝试了一下。。依旧。。您说会不会是我的applicationContext没有识别到呢?。。。。
    问题补充:AngelAndAngel 写道
    <context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath*:/resources/applicationContext.xml</param-value>
    	</context-param>
    


    改成这样的试试
    嗯我尝试下,
    我的Tomcat服务器启动的时候,那个黑色的字体如下
    17:27:07,872 INFO ContextLoader:189 - Root WebApplicationContext: initialization started
    17:27:07,924 INFO XmlWebApplicationContext:411 - Refreshing [email protected]16925b0: display name [Root WebApplicationContext]; startup date [Wed Aug 24 17:27:07 CST 2011]; root of context hierarchy
    17:27:07,988 INFO XmlWebApplicationContext:426 - Bean factory for application context [[email protected]16925b0]: org.springframework.beans.factory.support.DefaultListableBeanFact[email protected]
    17:27:08,014 INFO DefaultListableBeanFactory:414 - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFact[email protected]: defining beans []; root of factory hierarchy
    17:27:08,014 INFO ContextLoader:209 - Root WebApplicationContext: initialization completed in 140 ms
    17:27:08,189 INFO XmlConfigurationProvider:31 - Parsing configuration file [struts-default.xml]
    17:27:08,328 INFO XmlConfigurationProvider:31 - Parsing configuration file [struts-plugin.xml]
    17:27:08,356 INFO XmlConfigurationProvider:31 - Parsing configuration file [struts.xml]
    17:27:08,360 INFO DefaultConfiguration:31 - Overriding property struts.i18n.reload - old value: false new value: true
    17:27:08,455 INFO StrutsSpringObjectFactory:31 - Initializing Struts-Spring integration...
    17:27:08,456 INFO SpringObjectFactory:31 - Setting autowire strategy to name
    17:27:08,456 INFO StrutsSpringObjectFactory:31 - ... initialized Struts-Spring integration successfully
    顺便请教下。这个叫什么呢?就是Tomcat启动的时候,有红色的字体:写的“信息:XXXX”还有种就是这种黑色的字体~
    问题补充:AngelAndAngel 写道
    <context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath*:/resources/applicationContext.xml</param-value>
    	</context-param>
    


    改成这样的试试
    也试了,试了两次,还是依旧的问题。
    问题补充:myali88 写道引用尝试了一下。。依旧。。您说会不会是我的applicationContext没有识别到呢?。。。
    有可能,你从日志上能看到你的Service被创建了吗?
    myali88 写道引用尝试了一下。。依旧。。您说会不会是我的applicationContext没有识别到呢?。。。
    有可能,你从日志上能看到你的Service被创建了吗?
    日志在哪里看呢?Tomcat启动的时候下面那堆文字是么~?
    问题补充:myali88 写道你的日志已经说明问题了,正常情况下应该有下面的日志:
    Bean factory for Root WebApplicationContext: org.springframework.beans.factory.support.DefaultListableBeanFact[email protected]: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,accountManager,userDao,roleDao,authorityDao,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,dataSource,sessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.security.web.PortMapperImpl#0,org.springframework.security.web.context.HttpSessionSecurityContextRepository#0,org.springframework.security.web.authentication.session.SessionFixationProtectionStrategy#0,org.springframework.security.authentication.ProviderManager#0,org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler#0,org.springframework.security.access.vote.AffirmativeBased#0,org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0,org.springframework.security.web.access.DefaultWebInvocationPrivilegeEvaluator#0,org.springframework.security.authentication.AnonymousAuthenticationProvider#0,org.springframework.security.web.savedrequest.HttpSessionRequestCache#0,org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint#0,org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0,org.springframework.security.config.http.UserDetailsServiceInjectionBeanPostProcessor#0,org.springframework.security.filterChainProxy,org.springframework.security.authentication.dao.DaoAuthenticationProvider#0,org.springframework.security.authentication.DefaultAuthenticationEventPublisher#0,org.springframework.security.authenticationManager,userDetailsService]; root of factory hierarchy
    

    但现在你的日志里面显示:
    org.springframework.beans.factory.support.DefaultListableBeanFact[email protected]: defining beans []; root of factory hierarchy 
    

    spring根本没有发现bean的定义。是不是配置文件还是有问题。


    那~这个意思是说,系统没有识别到applicationContext呢还是识别到了但是配置文件有问题呢?因为我把这个applicationContext.xml从项目中删除之后,这句话还是有。
    问题补充:myali88 写道我看你已经把spring的日志级别开到INFO了,但是却没有看到加载xml相关的日志。正常情况应该有:
    2011-08-24 17:29:53,250 [main] INFO  [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from URL [file:/D:/TDDOWNLOAD/springside-3.3.4/examples/mini-web/target/classes/applicationContext.xml]
    

    类似于这样的日志啊。
    哦~真厉害。那就是说大都是因为我的web.xml的问题是么。可是- -,我实在不懂怎么研究呢。那就是那句
    <context-param> 
            <param-name>contextConfigLocation</param-name> 
            <param-value>classpath*:/resources/applicationContext.xml</param-value> 
        </context-param> 
    出的问题么~如果其它的配置应该也和这个applicationContext没有什么关系了呢。是不是我再多看看这个路劲。
    问题补充:myali88 写道我看你已经把spring的日志级别开到INFO了,但是却没有看到加载xml相关的日志。正常情况应该有:
    2011-08-24 17:29:53,250 [main] INFO  [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from URL [file:/D:/TDDOWNLOAD/springside-3.3.4/examples/mini-web/target/classes/applicationContext.xml]
    

    类似于这样的日志啊。
    还有个问题为神马我的Tomcat关了之后项目仍然可以访问- -我重启下电脑。。
    问题补充:AngelAndAngel 写道 绝对是配置文件的路径有问题。我猜想你把resource也和src是配成一个的。
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath*:/applicationContext.xml</param-value>
    	</context-param>
    


    你改成我这样 应该没问题了。
    嗯我尝试下,我之前刚开始是写的
    <param-value>classpath*:applicationContext-*.xml</param-value>
    这样
    后来根据大大们提示改成了这样
    <param-value>classpath*:/resources/applicationContext.xml</param-value>
    我再试试。
    问题补充:AngelAndAngel 写道我刚才之所以让你 前面加个resource这个东西 是因为你说是同目录,后来发觉肯定是你们头把这个目录和src目录都可以被映射成同一级 相对目录,所以让你改成这样。
    应该没问题了。
    大大们!有新的进展了!这次抛出了好多异常呀。其中还包括Mysql驱动找不到的异常。我先解决下了来~
    问题补充:myali88 写道在你的web-inf下看看,到底你的spring配置文件在哪里,然后再在web.xml上配置好。实在不行,直接把配置移到classes里面。
    嗯这次终于有新的问题出来了!~
    吼吼!~等下我解决下!~~
    问题补充:AngelAndAngel 写道我刚才之所以让你 前面加个resource这个东西 是因为你说是同目录,后来发觉肯定是你们头把这个目录和src目录都可以被映射成同一级 相对目录,所以让你改成这样。
    应该没问题了。
    太感谢大大了!~
    这次终于UserInfoService is not null了!!!
    现在的新异常是:FreeMarker template error!
    这个我先自己摸索下!~
    关于SpringStruts注入的问题!终于解决了!~~~哇咔咔~~~

    非常感谢各位大大!~~~
    问题补充:AngelAndAngel 写道兄弟 那说明我刚才给你说的那个配置 应该是没问题的 这个问题应该是解决了的。

    恩是的!~非常感谢!
    太让各位大大费心了!~
    主要是这个项目都由我一个人负责,我技术又菜!所以承蒙各位大大多多指教!~
  2. A
    兄弟 那说明我刚才给你说的那个配置 应该是没问题的 这个问题应该是解决了的。

请教a action调用b action的问题

  1. Q
    controller a有 action a
    controller b有 action b
    action a 需要调用action b,且需要把params[:name]的内容也带过去
    比方说
    http://localhost/controllerb/actionb?name=ouwind,会返回name为ouwind的人的一些信息
    现在我想做的是在action a 里直接调用action b,action a里面直接解析action b的返回内容
    我现在写的大致代码是这样
    def actiona
    b=controllerb.new
    b.actionb
    end
    def actionb
    name=params[:name]
    end
    请教两个问题
    一:如何把params的值带过去,我在action a 里面增加params,actionb那边会说没有这个变量
    二:如何获得返回结果
    问题补充:夜鸣猪 写道分享我的一些看法吧
    如果是重用逻辑,Rails很少会采用action调用action的办法,通常会采用下面的办法:

    1。 如果,可以把逻辑放到model,首先,考虑把处理逻辑从controller里放下来。然后,是实例方法,还是类方法,可以对应去调用

    2。 如果,不合适放到model但是,方法是比较通用的,那可以考虑放到lib下然后,在不同的action中include进来,重用方法。

    3。 实在是controller应该处理的。那么,可以考虑放到application,这样也可以都用。

    4。 单独说要在不同的action里共用变量的话,应该考虑session或者flash

    5。 一定要action调用action,不管原因。可以考虑
    redirect_ to :controller => :A , :action => :show, :id=>@myobj
    也可以

    分享看法而已


    最后一种用redirect_to,如何取得返回结果呢,
    问题补充:夜鸣猪 写道分享我的一些看法吧
    如果是重用逻辑,Rails很少会采用action调用action的办法,通常会采用下面的办法:

    1。 如果,可以把逻辑放到model,首先,考虑把处理逻辑从controller里放下来。然后,是实例方法,还是类方法,可以对应去调用

    2。 如果,不合适放到model但是,方法是比较通用的,那可以考虑放到lib下然后,在不同的action中include进来,重用方法。

    3。 实在是controller应该处理的。那么,可以考虑放到application,这样也可以都用。

    4。 单独说要在不同的action里共用变量的话,应该考虑session或者flash

    5。 一定要action调用action,不管原因。可以考虑
    redirect_ to :controller => :A , :action => :show, :id=>@myobj
    也可以

    分享看法而已


    btw:从一个不同的controller之间,系统hash params不共享么
  2. A
    分享我的一些看法吧
    如果是重用逻辑,Rails很少会采用action调用action的办法,通常会采用下面的办法:

    1。 如果,可以把逻辑放到model,首先,考虑把处理逻辑从controller里放下来。然后,是实例方法,还是类方法,可以对应去调用

    2。 如果,不合适放到model但是,方法是比较通用的,那可以考虑放到lib下然后,在不同的action中include进来,重用方法。

    3。 实在是controller应该处理的。那么,可以考虑放到application,这样也可以都用。

    4。 单独说要在不同的action里共用变量的话,应该考虑session或者flash

    5。 一定要action调用action,不管原因。可以考虑
    redirect_ to :controller => :A , :action => :show, :id=>@myobj
    也可以

    分享看法而已

请教一个socket编程的问题:一个socket连接,可以多次post数据到web

  1. Q
    服务器是apache搭建的,支持keep-alive,人家配套的客户端程序可以和服务器保持一个tcp连接,然后可以多次post相同、不同的数据;抓包分析也是这样的,连接没有变的。

    需要自己单独写个辅助程序,实现另外的功能,问题来了,连接一次,只能post一次数据。
    弱弱的测试代码如下:请教大神如何修改,能建立好socket连接后,可以重复post,谢谢了。


    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

            Dim endPoint As New IPEndPoint(IPAddress.Parse("10.255.1.100"), 80)

            Dim s As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)

            s.Connect(endPoint)

            If s.Connected Then

        dim data as string="xxxxxxxx"

                Dim ascii As Encoding = System.Text.Encoding.UTF8
                Dim buf As New StringBuilder
                buf.Append("POST /httpServlet HTTP/1.1" & vbCrLf)
                buf.Append("Content-Type: application/x-www-form-urlencoded" & vbCrLf)
                buf.Append("Connection: Keep-Alive" & vbCrLf)
                buf.Append("Content-Length: " & data.Length & vbCrLf & vbCrLf & vbCrLf)

                buf.Append(data & vbCrLf)
                Dim bytesSent As [Byte]() = ascii.GetBytes(buf.ToString)
                Dim bytesReceived(4096) As [Byte]

                s.Send(bytesSent, bytesSent.Length, 0)

               
                Dim bytes As Int32

                Dim page As [String] = ""
                Dim i As Integer = 0

                bytes = s.Receive(bytesReceived, bytesReceived.Length, 0)

                page = page + System.Text.Encoding.GetEncoding("GB2312").GetString(bytesReceived, 0, bytes)


                txtLog.Text = page.ToString

        '想继续发送就不行了,发现连接已经被断开了。。。
                s.Send(bytesSent, bytesSent.Length, 0)

            End If

        End Sub



  2. A
    贴出“人家配套的客户端程序”的代码来。

    你的程序没有必要管它什么 keep-alive,也没有必要写这么多行代码。只要短连接地能够 post 数据就可以了。

请教关于spring mvc中使用json-lib-ext-spring返回json的问题

  1. Q
    我做了一个这样的框架:
    spring+hibernate+spring mvc

    想让spring mvc返回json数据,使用了json-lib-ext-spring1.0.2。

    刚弄完时是http://localhost/listPerson.do可以在页面上显示出json数据的,但是后来改了一些东西。然后再调用http://localhost/listPerson.do却不显示json数据了,而是提示下载listPerson.do。请教大家是怎么回事啊?

    代码如下:

    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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" version="2.5">
        <display-name>Spring Annotation MVC Sample</display-name>
        <!--  Spring 服务层的配置文件 -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    
        <!--  Spring 容器启动监听器 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener
            </listener-class>
        </listener>
        <servlet>
            <servlet-name>json</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
        	<servlet-name>json</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    </web-app>
    


    applicationContext.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans
     	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     	http://www.springframework.org/schema/context
     	http://www.springframework.org/schema/context/spring-context-2.5.xsd
     	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
     	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    
        <!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 -->
    	<!--
    		bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/
    	-->
    	<!--
    		<context:annotationconfig/> 将隐式地向 Spring 容器注册
    		AutowiredAnnotationBeanPostProcessor、
    		CommonAnnotationBeanPostProcessor、PersistenceAnnotationBeanPostProcessor
    		以及 equiredAnnotationBeanPostProcessor 这 4 个 BeanPostProcessor。
    		使用这个选项必须加入最上面的3、6、7项
    	-->
    	<context:annotation-config/>
    	<!--
    		<bean id="boss" class="net.sf.test.Boss"/>
    		<bean id="office" class="net.sf.test.Office"> <property name="no" value="001"/> </bean>
    		<bean id="car" class="net.sf.test.Car" scope="singleton">
    			<property name="brand" value=" 红旗 CA72"/>
    			<property name="price" value="2000"/>
    		</bean>
    	-->
    
    	<aop:config>
    		<aop:advisor
    			pointcut="execution(* net.sf.service.*.*(..))"
    			advice-ref="txAdvice" />
    	</aop:config>
    	<tx:advice id="txAdvice">
    		<tx:attributes>
    			<tx:method name="insert*" />
    			<tx:method name="update*" />
    			<tx:method name="*" propagation="REQUIRED"/>
    		</tx:attributes>
    	</tx:advice>
    	<!--bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /-->
    	<bean id="transactionManager"
    		class="org.springframework.orm.jpa.JpaTransactionManager">
    		<property name="entityManagerFactory"
    			ref="entityManagerFactory" />
    	</bean>
    	<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"
    		destroy-method="close">
    		<property name="driver"><value>oracle.jdbc.driver.OracleDriver</value></property>
    		<property name="driverUrl"><value>jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))</value></property>
    		<property name="user" value="test"></property>
    		<property name="password" value="test"></property>
    		<property name="alias" value="myblogdb"></property>
    		<!--property name="houseKeepingSleepTime"><value>9000</value></property-->
    		<property name="prototypeCount" value="5"></property>
    		<property name="maximumConnectionCount" value="100"></property>
    		<property name="minimumConnectionCount" value="10"></property>
    		<property name="trace" value="true"></property>
    		<property name="verbose" value="true"></property>
    	</bean>
    
    	<bean id="entityManagerFactory"
    		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    		<property name="dataSource" ref="dataSource" />
    		<property name="jpaVendorAdapter">
    			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    				<property name="database" value="ORACLE" />
    				<property name="generateDdl" value="true" />
    				<property name="showSql" value="true" />
    			</bean>
    		</property>
    	</bean>
    
    	<context:component-scan base-package="net.sf">
    		<!--context:include-filter type="aspectj" expression="edu.jlu.fuliang.util..*"/-->
    		<context:include-filter type="regex" expression="net\.sf\.service\..*"/>
    		<context:include-filter type="regex" expression="net\.sf\.test\..*"/>
    		<context:exclude-filter type="regex" expression="net\.sf\.action\..*"/>
    	</context:component-scan>
    
    </beans>
    


    json-servlet.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    
        <!-- ①:对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能-->
        <context:component-scan base-package="net.sf.action"/>
    
     	<!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
    
        <!--  ③:对模型视图名称的解析,即在模型视图名称添加前后缀 -->
    	<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"/>
    </beans>
    
    


    views.properties
    jsonView.(class)=net.sf.json.spring.web.servlet.view.JsonView
    jsonView.contentType=application/json;charset=UTF-8
    


    PersonAction.java
    package net.sf.action;
    
    import net.sf.service.PersonService;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class PersonAction {
    	@Autowired
        private PersonService _personService;
    
        @RequestMapping("/listPerson.do") // <—— ①
        public String listPerson(Model m) {
        	//_personService.getList();
        	m.addAttribute("personList", _personService.getList());
            System.out.println("call listAllBoard method.ss");
            return "jsonView";
        }
    }
    


    PersonServiceImpl.java
    package net.sf.service.impl;
    
    import java.util.List;
    
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import javax.persistence.Query;
    
    import net.sf.service.PersonService;
    
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Service;
    
    @Scope("prototype")
    @Service("personService")
    public class PersonServiceImpl implements PersonService {
    	EntityManager em;
    
    	@PersistenceContext
    	public void setEm(EntityManager em) {
    		this.em = em;
    	}
    
    	public List getList(){
    		String sHql = "FROM Person";
    		Query query = em.createQuery(sHql);
    		List resultList = query.getResultList();
    		return resultList;
    	}
    	public String test(){
    		return "hello world, 雪狐!";
    	}
    }
    
  2. A
    我也遇到过这样的问题。。把json-lib-ext-spring的异常处理bean的bean配置项去掉就可以了。。

请教一个问题,在jsp文件中,怎么通过输入流,输出流像服务器写文件啊,我像本地文件写呢,可是放到jsp中,上传服务器,怎么说我路径不对啊,我改了路径啊

  1. Q
    想服务器上写文件,


    请教一个问题,在jsp文件中,怎么通过输入流,输出流像服务器写文件啊,我像本地文件写呢,可是放到jsp中,上传服务器,怎么说我路径不对啊,我改了路径啊
    不晓得像服务器上写文件要别的东西吗

       <%FileWriter out1=new FileWriter("/2.js");  地址是这么写吗
      BufferedWriter outbuffer=new BufferedWriter(out1);
      outbuffer.write("var interval_time=5\r\n");
      outbuffer.write("var focus_width=260\r\n");
      outbuffer.write("var focus_height=180\r\n");
      outbuffer.write("var text_height=18\r\n");
      outbuffer.write("var text_align= 'center'\r\n");
      outbuffer.write("var swf_height = focus_height+text_height\r\n");
      outbuffer.write("var pics= 'image/4.jpg|image/1.jpg|image/2.jpg|image/3.jpg'\r\n");
     
      outbuffer.write("var links='");
     
      outbuffer.write(s[0]);
      outbuffer.write("|");
      outbuffer.write(s[1]);
      outbuffer.write("|");
      outbuffer.write(s[2]);
      outbuffer.write("|");
      outbuffer.write(s[3]);
     
     
     
     
     
    outbuffer.write("\r\n");
    outbuffer.write("var texts='");
    outbuffer.write(s[4]);
      outbuffer.write("|");
      outbuffer.write(s[5]);
      outbuffer.write("|");
      outbuffer.write(s[6]);
      outbuffer.write("|");
      outbuffer.write(s[7]);
      outbuffer.write("\r\n");
     
     
     
     
    outbuffer.write("document.write('<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\"\r\n");
      outbuffer.write("codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" width=\"'+ focus_width +'\" height=\"'+ swf_height +'\">');\r\n");
       outbuffer.write("document.write('<param name=\"movie\" value=\"pixviewer.swf\"><param name=\"quality\" value=\"high\"><param name=\"bgcolor\" value=\"#ffffff\">');\r\n");
        outbuffer.write("document.write('<param name=\"menu\" value=\"false\"><param name=wmode value=\"opaque\">');\r\n");
         outbuffer.write("document.write('<param name=\"FlashVars\" value=\"pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'&text_align='+text_align+'&interval_time='+interval_time+'\">');\r\n");
          outbuffer.write("document.write('<embed src=\"pixviewer.swf\" wmode=\"opaque\" FlashVars=\"pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'&text_align='+text_align+'&interval_time='+interval_time+'\" menu=\"false\" bgcolor=\"#ffffff\" quality=\"high\" width=\"'+ focus_width +'\" height=\"'+ swf_height +'\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />');\r\n");
           outbuffer.write("document.write('</object>');\r\n");
      outbuffer.flush();
      outbuffer.close();
    out.println("上传成功");


    out.println("数据为:");



    for(int i=0;i<8;i++)
    out.println("<br>"+s[i]);

    %>
    问题补充:
    2.js放到服务器上,按照1喽所说的
    2.js要放在那里.
    和这个jsp的目录结构是怎么的.
    同一个目录
    FileWriter out1=new FileWriter("2.js");
    不要/

    这样我试验呢,不行, 服务器地址:x01.jspwebhost.cn
  2. A
    2.js要放在那里.
    和这个jsp的目录结构是怎么的.
    同一个目录
    FileWriter out1=new FileWriter("2.js");
    不要/