如题,请问诸位大佬,我建立了一个Faces类,在类内的main函数测试都正常,但是在javaee的服务器组件中调用就会出现问题,会报如下错:
严重: Allocate exception for servlet [UploadServlet]
java.lang.ClassNotFoundException: com.tencentcloudapi.common.exception.TencentCloudSDKException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at servlet.UploadServlet.<init>(UploadServlet.java:21)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1042)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
对于Faces类本菜鸡是这么写的: public class Faces {
public static IaiClient getConnection () {
Credential cred = new Credential("******", //SecretId
"*******"); //SecretKey
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("iai.tencentcloudapi.com");
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
IaiClient client = new IaiClient(cred, "", clientProfile);
return client;
}
public static SearchFacesResponse searchFaces(String image) {
SearchFacesResponse resp = null;
System.out.println("start");
try{
IaiClient client = getConnection();
String params = "{\"GroupIds\":[\"students\",\"teachers\"],\"Image\":\"" + image + "\"}";
SearchFacesRequest req = SearchFacesRequest.fromJsonString(params, SearchFacesRequest.class);
resp = client.SearchFaces(req);
System.out.println(SearchFacesResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
return resp;
}
public static void main(String[] args) {
byte[] data = null;
try {
InputStream in = new FileInputStream("D:\\program\\testWEB\\photo\\test\\0.jpg");
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
String image = encoder.encode(data);
Faces.searchFaces(image);
}
}
在运行main函数的时候都是正常的、返回正确的结果,但是在服务器组件中的doGet函数里,用Faces.searchFaces(image)调用就会出错……不清楚为什么,怎么解决……哭了……
求求诸位帮忙!
相似问题