1. O cache da página JSP faz com que os dados ajax não sejam atualizados e reimpressos
https://blog.csdn.net/iteye_12528/article/details/81443986
ServletActionContext.getResponse.setHeader("Cache-Control","no-store");
ServletActionContext.getResponse.setHeader("Pragma","no-cache");
ServletActionContext.getResponse.setDateHeader("Expires", 0);
2.java Arquivo de operação de recurso lança FileNotFoundException
Este problema não é fácil de encontrar. No desenvolvimento, os arquivos de configuração de recursos geralmente estão em pastas, então Resource#getFile() é totalmente aceitável, mas se o arquivo de configuração for compactado em um JAR ao publicar, getFile() será inválido, então lido de maneira contínua, o que pode efetivamente evitar o impacto do ambiente de implantação
//报错的读取方式
(new DefaultResourceLoader()).getResource("classpath:conf/sys.properties").getFile();
//正确的读取方式
(new DefaultResourceLoader()).getResource("classpath:conf/sys.properties").getInputStream();
3. Obter solicitação - problema de símbolo especial
Em projetos, muitas vezes há funções como verificação de strings, como modificação de senhas de contas.
Solicitações get em java geralmente causam símbolos especiais que não podem ser reconhecidos.
Portanto, deve-se observar que essas solicitações de envio de strings precisam usar solicitações post.
4. Jar de referência para chamar o erro NoSuchMethodError, ClassNotFoundException, NoClassDefFoundError
Quando o jar é atualizado e chamado no projeto, porque o jar não é gerenciado pelo maven, e outros jars de terceiros são introduzidos
Exceção ClassNotFound: O pacote de dependência está ausente no jar de atualização
Erro NoSuchMethodError: O pacote referenciado tem conflitos
Por exemplo:
1.NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory
Isso é causado por consultar o pacote de referência de SSLConnectionSocketFactory e descobrir que a versão atual não oferece suporte a esse método
2. NoClassDefFoundError é seguido pela classe que relatou o erro
A situação que encontrei foi que
A.jar e B.jar foram importados.Ao carregar, A.jar continha C1.jar e B.jar continha C2.jar,
resultando em um conflito de versão de C.jar.
Esse tipo de problema é para confirmar qual pacote jar é chamado.
Forneça a você uma classe de ferramenta
e coloque-a diretamente na classe para ver se o jar chamado está correto.
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.CodeSource;
import java.security.ProtectionDomain;
public class SystemUtils {
/**
* 获取一个class类的实际位置
* @param cls
* @return
*/
public static URL getClassLocation(final Class<?> cls) {
//非空判断
if (cls == null) {
throw new IllegalArgumentException("null input: cls");
}
URL result = null;
final String clsAsResource = cls.getName().replace('.', '/').concat(".class");
final ProtectionDomain pd = cls.getProtectionDomain();
if (pd != null) {
final CodeSource cs = pd.getCodeSource();
if (cs != null) {
result = cs.getLocation();
}
if (result != null) {
if ("file".equals(result.getProtocol())) {
try {
if (result.toExternalForm().endsWith(".jar") || result.toExternalForm().endsWith(".zip")) {
result = new URL("jar:".concat(result.toExternalForm()).concat("!/").concat(clsAsResource));
} else if (new File(result.getFile()).isDirectory()) {
result = new URL(result, clsAsResource);
}
} catch (MalformedURLException ignore) {
}
}
}
}
if (result == null) {
final ClassLoader clsLoader = cls.getClassLoader();
result = clsLoader != null ? clsLoader.getResource(clsAsResource) : ClassLoader.getSystemResource(clsAsResource);
}
return result;
}
}
Texto original da ferramenta: https://www.bbsmax.com/A/RnJW1bEBdq/
5. relatório de inicialização do weblogic: java.lang.ClassCastException: com.octetstring.vde.backend.BackendRoot**
No servidor Linux, a conta root (deve ser uma conta de usuário comum) é usada para iniciar o aplicativo weblogic
Quando o usuário normal (usuário weblogic) começa a alternar, a exceção do título é relatada
Razão: Depois que o usuário root é iniciado, todos os tipos de permissões de arquivo são concedidos às permissões root, o que leva a permissões insuficientes para operar arquivos ao iniciar com usuários comuns posteriormente.
Abordagem:
find /home/weblogic/ -user root -exec ls {
} \; 查询 /home/weblogic/(此目录是weblogic 的存放目录) 目录下是root 用户权限的文件
chown -R weblogic:weblogic domains 将domains目录下所有的文件,赋值weblogic 用户权限
Repita a operação acima, localize o arquivo de permissão raiz no diretório de destino e autorize-o novamente
6. A porta está ocupada no Linux, o endereço é usado
Verifique o número do processo que ocupa a porta e elimine-o (desde que esse número de porta pertença apenas a você)
ps aux | grep java | losf -i:7001 | grep LISTEN | awk '{print $2}' 查看java 进程,占用7001 端口的 pid
netstat -an | grep LISTEN
0.0.0.0的就是每个IP都有的服务,写明哪个IP的就是绑定那个IP的服务。
netstat -tln
用来查看linux的端口使用情况
netstat -tunllp 查所有的端口
sudo netstat -anp|grep "端口号" ----查使用端口的进程号
kill -9 进程号