[BUG1]
启动WebService的时候,出现如错误;错误信息:
Exception in thread "main" org.apache.axis2.AxisFault: The ServiceClass object does not implement the required method in the following form: OMElement getPublishedWebService(OMElement e)at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at zxwtry.webServiceTest.PublishWebServiceStub.getPublishedWebService(PublishWebServiceStub.java:165)
at zxwtry.webServiceGet.GetWebService.main(GetWebService.java:16)
这个错误,绝大多数原因是:
/WebContent/WEB-INF/services/META-INF/services.xml里面生成的是早版本信息,内容如下:
<service name="PublishWebService" >
<Description>
Please Type your service description here
</Description>
<messageReceivers>
<messageReceiver mep=" http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep=" http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass" locked="false">publishWebService.PublishWebService</parameter>
</service>
需要做的改动是:
将www.w3.org/2004/08/wsdl/改为www.w3.org/ns/wsdl/。即可正常运行。
[BUG2]
将使用了activemq的JavaWeb移到ubuntu时候,出现了错误,信息如下:
No instances found at /etc/activemq/instances-enabled.
在/etc/activemq/instances里面找不到配置文件;可以创建一个软连接到找得到的地方。
运行如下命令,可以解决问题:
sudo ln -s /etc/activemq/instances-available/main /etc/activemq/instances-enabled/main
[BUG3]
最近看到了一段代码,将代码精简到如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
public class FirstTest {
public static void main(String[] args) throws IOException {
File newFile = new File("/home/ubuntu/java_file/C.java");
//if (newFile.exists()) {
// newFile.delete();
//}
newFile.deleteOnExit();
newFile.createNewFile();
System.out.println("done");
System.out.println(newFile.exists());
}
}
这段代码正常执行但是没有创建一个新的文件C.java。
原因在于File.deleteOnExit()方法的使用,查看Java API有:
注意开头七个字:“在虚拟机终止时”!!!
将代码中注释部分取消注释,注释newFile.deleteOnExit(),即可执行正常的工作。